gpt4 book ai didi

java - ArrayList 上的多个排序条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:37 26 4
gpt4 key购买 nike

我的任务是创建一个具有所有常用功能的 MP3 目录。我有一个 MP3_Track、MP3_UserInterface 和 Main 类。

public class MP3_Track implements Comparable<MP3_Track>{

private int trackNo;
private String artistName;
private String albumName;
private String trackLength;

MP3_Track(int no, String artist, String album, String length){
this.trackNo = no;
this.artistName = artist;
this.albumName = album;
this.trackLength = length;

// setters & getters

@Override
public String toString(){
return (" Track Number : " + trackNo + "\n Artist Name : " + artistName + "\n Album Name : " + albumName +"\n Track Length : " + trackLength);
}

@Override
public int compareTo(MP3_Track aTrack){
int result;
try{
result = artistName.compareTo(aTrack.artistName);
}
catch(UnsupportedOperationException e){
throw new UnsupportedOperationException("Not supported here.");
}
return result;
}
}

我的主类包含:

static void deleteTrack()
static MP3_Track addTrack()
static void moveTrack()
static void exploreTracks()...etc

根据用户在控制台输入的内容,主要调用相关方法。

如: Collections.sort(myTracks);myTracks 是 MP3_Tracks 的集合,目前 mt MP3_Track 覆盖了 compareTo() 方法,但如您所见,它仅按 artistName 对其进行排序!!!我希望用户可以选择如何对轨道进行排序等。我想也许我可以在 MP3_Track 中有一个数据成员,它可以标记要实现的排序类型,然后一些 if 在 compareTo 方法中返回所需的结果。这个解决方案似乎有些麻烦,我想到的另一种可能性是实现自定义接口(interface)!!!

非常感谢任何关于巧妙解决方法的建议???

非常感谢,顺便说一句,很棒的网站..

最佳答案

您需要查看 Collections.sort() 方法。您可以传入 Comparator 接口(interface)的实现,它将使用它进行排序。

有关示例,请参阅 http://www.vogella.com/articles/JavaCollections/article.html#collectionssort

关于java - ArrayList 上的多个排序条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735446/

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