【发布时间】:2010-09-24 01:22:02
【问题描述】:
我有一个我创建的类的实例的 ArrayList,每个实例都包含一个带字符串的字段。我已经在我创建的类中实现了 Comparable。如何对数组列表进行排序?
【问题讨论】:
-
您可以将您的对象添加到
SortedSet,例如TreeSet,然后集合将保持它们的排序。
我有一个我创建的类的实例的 ArrayList,每个实例都包含一个带字符串的字段。我已经在我创建的类中实现了 Comparable。如何对数组列表进行排序?
【问题讨论】:
SortedSet,例如TreeSet,然后集合将保持它们的排序。
编辑
对我来说没有错误
class Gene {
}
class MyGene extends Gene implements Comparable<MyGene> {
public int compareTo(MyGene o) {
throw new UnsupportedOperationException("Method is not implemented yet.");
}
}
...
List<MyGene> l = new ArrayList<MyGene>();
Collections.sort(l);
【讨论】:
或者您可以使用 Java 8 API:
List<MyGene> l = new ArrayList<MyGene>();
l.stream().sorted().collect(toList());
通常,你会使用类似的东西:
List<MyGene> l = new ArrayList<MyGene>();
l.stream().sorted((o1, o2) -> o2.getId().compareTo(o1.getId())).collect(toList());
,
但是由于您的 MyGene 已经实现了类似的功能,因此简单的 sorted() 就足够了。
【讨论】: