2015-05-12 60 views
0

我有一个数组,我需要打印,我已经通过stackoverflow看,所以我知道我需要使用toString,这样我不只是打印哈希码,但由于某种原因,它仍然打印像“ [email protected][email protected][email protected]正确使用toString来打印数组?

Music2[] musiclist = new Music2[10]; 
musiclist[0] = new Music2("Pieces of You", "1994", "Jewel"); 
musiclist[1] = new Music2("Jagged Little Pill", "1995", "Alanis Morissette"); 
musiclist[2] = new Music2("What If It's You", "1995", "Reba McEntire"); 
musiclist[3] = new Music2("Misunderstood", "2001", "Pink"); 
musiclist[4] = new Music2("Laundry Service", "2001", "Shakira"); 
musiclist[5] = new Music2("Taking the Long Way", "2006", "Dixie Chicks"); 
musiclist[6] = new Music2("Under My Skin", "2004", "Avril Lavigne"); 
musiclist[7] = new Music2("Let Go", "2002", "Avril Lavigne"); 
musiclist[8] = new Music2("Let It Go", "2007", "Tim McGraw"); 
musiclist[9] = new Music2("White Flag", "2004", "Dido"); 

public static void printMusic(Music2[] musiclist) { 
    System.out.println(Arrays.toString(musiclist));   
} 

这是我的阵列和我使用的打印方法。任何帮助,将不胜感激。

+0

**题外话评论:** java.util.List的 musicList ........ ....是一个很好的工作方式。 –

回答

2

您应该在Music2类中定义toString()方法并以您喜欢的方式打印它。我不知道如何在你的对象字段命名准确,但它可以是这样的:

public class Music2 { 
    ... 

    @Override 
    public String toString() { 
     return this.artist + " - "+ this.title + " (" + this.year + ")"; 
    } 
} 

之后按照预期的printMusic方法会奏效。

0

您可以为每个循环声明一个来显示音乐属性。这是代码

for (Music2 music : musiclist){ 
    System.out.println("Title: " + music.getTitle); 
} 
0

因为默认情况下阵了toString()实现Object类的,那就是:

public String toString() { 
    return getClass().getName() + "@" + Integer.toHexString(hashCode()); 
} 

所以,你需要在你的类覆盖toString()

@Override 
    public String toString() { 
     return this.fieldNameone + " "+ this.fieldNametwo + " " + this.fieldNamethree + " "; 
    } 
0

如果使用Java8你可以使用

Arrays.stream(musiclist).forEach(System.out::print) 

但要确保音乐2具有用于的toString()的覆盖方法

0

在Arrays.toString(musiclist)你实际上该阵列以构成所得到的字符串的每个元素调用的toString()。所以,如果你覆盖基本对象的toString()的音乐2类实现你会得到你想要的东西

public class Music2 { 
    ..... 
    @Override 
    public String toString() { 
     return "Music2{" + "title=" + title + ", group=" + group + ", year=" + year + '}'; 
    } 
}