如何解决在数组列表中查找重复元素
| 我想知道是否有一种方法可以在arraylist中查找重复的元素。有关我要执行的操作的更多信息,我有一个字符串数组列表。每个字符串都包含有关MP3文件的信息。他们有一个标题,作曲家和运行时间,并以\'&\'字符分隔(例如Friday&Rebecca Black&666)。 阵列列表已经根据运行时间进行了快速排序。但是,我还需要对arraylist进行排序,以便如果歌曲的运行时间相等,则应按标题将其按字典顺序排列,如果标题相等,则应按作曲家的顺序排列。 我希望能够在arraylist中找到重复的运行时间,以便可以使用compareTo
方法按需要对字母进行排序。我已经实现了方法getTime
,getTitle
,getComposer
,它们从整个字符串中提取了相关信息。有没有办法用诸如ѭ4这样的新方法来做到这一点,或者更好的办法是可以将其合并到我的快速排序算法中,而不必再次搜索排序后的数组列表?
谢谢。
解决方法
您需要为您的排序更改比较器,以便在出现平局(相等的运行时间)的情况下,它可以查看标题和作曲家。看到:
java.util.Collections.sort(List list,Comparator c)
特别是主要方法:
int compare(Object o1,Object o2)
, 删除列表中的重复元素不是实现目标的最佳方法。相反,可以考虑使用Comparator(如果有多种排序方法),或者使用MP3File类实现Comparable(如果只有一种,或者显然是最好的)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。