java - 谁能解释为什么我得到随机 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**
解决方案
您获得的随机值是hashCode
对象的,因为您正在打印整个对象,但您尚未定义要打印的内容。
因此,在打印 Object 时,默认实现是
getClass().getName() + "@" + Integer.toHexString(hashCode())
这正是你会得到的。
推荐阅读
- ruby-on-rails - 对 JSONB 列上存储数组中第一个值的 Active Record 查询
- javascript - 添加动态标题属性以选择选项元素javascript
- rust - 从子 iter().map 中访问来自父级 iter().map 的变量会抛出 'error[E0597]: `x` does not live enough long' on compile'
- dart - Flutter Android PreferenceScreen 设置页面
- android - 反应本机 MainApplication.java 方法不会覆盖或实现超类型中的方法
- vala - 使用变量动态访问属性
- javascript - Office Fabric UI React - 选择问题
- excel-addins - 获取帖子请求在自定义功能 Office 插件中不起作用 [TypeError:网络请求失败]
- c# - Ninject 嵌套构造函数参数
- vue.js - vue-tables-2 过滤从父组件传递的参数