Java 打印包含新类型对象的数组列表

Java 打印包含新类型对象的数组列表,java,class,arraylist,iterator,Java,Class,Arraylist,Iterator,我正在开发一个Java程序,其中有一个名为“CD”的ArrayList,在这张CD中有“Songs”,每首歌曲都是song类中的一个对象,它有参数:String Artister、String album和int year。有没有关于如何打印这首歌的一般建议,这样它也可以打印每首歌的内容 另外,我知道这里也有类似的问题,但我仍然很难让它准确地打印出我想要的内容,我已经尝试使用迭代器 提前谢谢大家的帮助 您需要在Song类中实现toString()方法 如果没有实现此方法,Java将只打印对象的引

我正在开发一个Java程序,其中有一个名为“CD”的ArrayList,在这张CD中有“Songs”,每首歌曲都是song类中的一个对象,它有参数:String Artister、String album和int year。有没有关于如何打印这首歌的一般建议,这样它也可以打印每首歌的内容

另外,我知道这里也有类似的问题,但我仍然很难让它准确地打印出我想要的内容,我已经尝试使用迭代器


提前谢谢大家的帮助

您需要在
Song
类中实现
toString()
方法

如果没有实现此方法,Java将只打印对象的引用地址。 对于您的
Song
类,
toString()
方法可以如下所示:

public String toString(){
    return "Artist:"+artists+", Song name:"+ songName+", Album:"+album+", Year:"+year;
}
之后,您只需使用
System.out.println(Arrays.toString(cd))

在Song类中编写为toString()方法

public String toString()
{
   return artist + " " + album + " " + year;
}
然后调用方法toString().Example System.out.println(MyList.toString())

只需使用foreach

for (Song s:CD) {
    System.out.println(s);
}
在歌曲类中,添加以下内容:

public String toString() {
    return artist+" "+album+" "+year;
}
打印对象时,打印机首先查看toString方法,该方法由每个对象从类对象继承。重写toString方法会更改给定对象的表示形式


最后,我建议您的歌曲有一个字段“名称”。我的意思是,这不是可打印数据中最重要的部分吗?

您也可以在您的Songs类中使用Lombok@ToString注释。如果您觉得自己懒得编写toString方法。

请向我们展示您的迭代器尝试。或者将
toString()
方法放在你的
歌曲
类中。是的,请分享更多信息和你迄今为止编写的代码,如果没有更多细节,就不可能知道哪些代码会有帮助!而且,这是有道理的,因为我得到了地址值,我不敢相信我忘记了。那么什么时候我们想使用迭代器类而不是使用for-each循环?@user2465406好吧,假设你有一个整数矩阵,你想用一些随机值填充它。所以你有int i[n][n];如果通过foreach循环,如果没有外部迭代器,就无法“填充”矩阵。因此,for循环(在本例中为两个)更有用。只要不想“馈送”另一个数组,就可以使用Foreach。如果您需要一些整数数组中的最小值,或者如果您正在打印内容,比如这里。