gpt4 book ai didi

java - 覆盖 compareTo 并使用两个字符串进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:00 25 4
gpt4 key购买 nike

假设我有一个 Album 类。我如何编写 compareTo 方法,以便当我有一个 Album 对象的 ArrayList 并调用

Collections.sort()

它将按标题和歌手按升序排序。

Public class Album implements Comparable{

private String title;
private String singer;
private double price;

.....

public int compareTo(){

// How to

}

}

最佳答案

我会这样写

public int compareTo(Album other) {
int primary = title.compareTo(other.title);
return primary != 0 ? primary
: singer.compareTo(other.singer);
}

但就我个人而言,我认为专辑是否具有“自然顺序”是有争议的。例如,如果您将来想要按评级或年份对专辑进行排序。

如果我是你,我可能会为此创建一个Comparator:

class TitleSingerComparator implements Comparator<Album> {
public int compare(Album a, Album b) {
int primary = a.title.compareTo(b.title);
return primary != 0 ? primary
: a.singer.compareTo(b.singer);
}
}

并使用

对集合进行排序
Collections.sort(albums, new TitleSingerComparator());

关于java - 覆盖 compareTo 并使用两个字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9307751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com