首页 > 解决方案 > 谁能解释为什么我得到随机 ar.get(0) 值

问题描述

我是 java 新手,尝试使用 ArrayList,但运行时我得到随机输出,没有错误,但尝试访问 ar.grt(0) 值时得到随机输出。谁能解释为什么我得到这种类型的输出

import java.util.*;
import java.util.Comparator;
import java.lang.*;
import java.io.*;


class Student
{

     String name="";
     int roll;
     int marks;
     public Student(String na,int ro,int ma)
     {
        name=na;
        roll=ro;
        marks=ma;   

     }

}

public class CustomSortingClass
{
    public static void main(String []args)
    {   Student s1=new Student("Priyanka",05,75);
        Student s2=new Student("Abhishek",01,90);
        Student s3=new Student("Shivendra",04,80);
        Student s4=new Student("Ritesh",02,95);
        Student s5=new Student("Sonali",06,65);



        ArrayList<Student> ar=new ArrayList<Student>();
        ar.add(s1);
        ar.add(s2);
        ar.add(s3);
        ar.add(s4);
        ar.add(s5);

        System.out.println("unsorted Student\n"+ar.get(0));

    }

}

输出是:

F:\java>java CustomSortingClass

unsorted Student

Student@b065c63**

标签: javaarraylistcollections

解决方案


您获得的随机值是hashCode对象的,因为您正在打印整个对象,但您尚未定义要打印的内容。

因此,在打印 Object 时,默认实现是

getClass().getName() + "@" + Integer.toHexString(hashCode())

这正是你会得到的。


推荐阅读