You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:ArrayList遍历输出Student对象显示哈希值而非内容求助

解决打印Student对象显示哈希值的问题

嗨,我来帮你搞定这个问题!你现在看到的com.example.com.arraylist.Student@d6765f3这类字符串,其实是Java对象默认toString()方法的输出结果。因为你的Student类没有重写这个方法,所以会使用父类Object的默认实现——它就是把类名、@符号和对象的哈希码拼在一起输出,自然看不到你想要的学生具体信息啦。

下面给你两种简单的解决办法,都能配合你现有的for循环实现正常显示:

方法一:重写Student类的toString()方法(推荐)

这是最优雅的处理方式,修改你的Student类,添加自定义的toString()方法,指定对象的字符串表现形式:

package com.example.com.arraylist;
public class Student {
    int Enrno;
    String Name;
    public Student(int Enrno, String Name){
        this.Enrno=Enrno;
        this.Name=Name;
    }

    // 重写toString方法,自定义对象打印内容
    @Override
    public String toString() {
        return "学生信息:学号=" + Enrno + ", 姓名='" + Name + "'";
    }
}

修改完成后,你原来的for循环完全不用改动,直接打印a就会输出每个学生的具体信息,比如:

学生信息:学号=1, 姓名='Rahul'
学生信息:学号=2, 姓名='Rajiv'
学生信息:学号=3, 姓名='Rohan'

方法二:在循环中直接访问对象属性打印

如果你不想修改Student类,也可以直接在循环里读取对象的Enrno和Name属性,手动拼接输出内容:

for(Student a:studentArrayList)
    System.out.println("学号:" + a.Enrno + ",姓名:" + a.Name);

这样也能得到你想要的实际内容输出。

内容的提问来源于stack exchange,提问作者Humming Bird

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:17:35