Java 有一个奇怪的分类
我有一个双数组列表,我在这里存储音乐标题 ArrayList-AJava 有一个奇怪的分类,java,android,arraylist,Java,Android,Arraylist,我有一个双数组列表,我在这里存储音乐标题 ArrayList-A Collections.sort(list, new Comparator<Data>() { @Override public int compare(Data o1, Data o2) { return o1.getAlbum().compareTo(o2.getAlbum()); // get Type String } }); 我保存了每个数据并进行了分类。它看起来不错
Collections.sort(list, new Comparator<Data>() {
@Override
public int compare(Data o1, Data o2) {
return o1.getAlbum().compareTo(o2.getAlbum()); // get Type String
}
});
我保存了每个数据并进行了分类。它看起来不错,但当我仔细看的时候,我发现了一个小问题
保存的歌曲“巴黎”和“巴黎之夜/纽约早晨”中有两段数据
我想正常的顺序是
巴黎
巴黎之夜/纽约早晨
所以ArrayList-A保持这个顺序
然而,ArrayList-B
巴黎之夜/纽约早晨
巴黎
按此顺序保存,因此标题和实际数据不同
大多数歌曲的标题都很好,但我不知道为什么会发生这种情况 您给出的第一个示例使用相册名称的可比性
o1.compareTo(o2);
这和
o1.getAlbumName().compareTo(o2.getAlbumName());
Collections.sort(song\u list\u data)
将使用数据
对象本身的自然顺序,而您的自定义比较器
,它委托给唱片集名称,将使用第二个。您确定将数据添加到列表后正在排序,并且之后没有修改吗?所有数据在添加到数据列表后都已排序,并且没有修改。这些数据来自何处?
o1.getAlbumName().compareTo(o2.getAlbumName());