在arraylist中查找重复元素

时间:2011-05-27 19:54:03

标签: java arraylist duplicates lexicographic

我想知道是否有办法在arraylist中找到重复的元素。对于我正在尝试做的更多上下文,我有一个字符串的arraylist。每个字符串都包含有关MP3文件的信息。他们有一个标题,作曲家和运行时间由'&'分开角色(例如Friday& Rebecca Black& 666)。

根据跑步时间,arraylist已被快速排序。但是,我还需要对arraylist进行排序,这样如果歌曲的运行时间相等,它们应该在标题上按字典顺序排列,然后在作曲家的标题上也是如此。

我希望能够在arraylist中找到重复的运行时间,以便我可以使用compareTo方法按字母顺序排序,就像我需要的那样。我已经实现了方法getTimegetTitlegetComposer,它们从整个字符串中提取相关信息。有没有办法可以用alphabetical之类的新方法做到这一点,或者更好的方法是我可以将它合并到我的快速排序算法中,这样我就不必再搜索排序的arraylist了吗? / p>

感谢。

2 个答案:

答案 0 :(得分:7)

您需要更改比较器的比较器,以便在出现平局(相同的运行时间)时查看标题和作曲家。参见:

 java.util.Collections.sort(List list, Comparator c) 

特别是主要方法:

int compare(Object o1, Object o2) 

答案 1 :(得分:2)

删除列表中的重复元素并不是实现目标的最佳方式。相反,请考虑使用Comparator(如果有多种排序方法),或者让你的MP3File类实现Comparable(如果只有一个,或者显然是最好的)。