因此,我制作了一个目录条目的ArrayList,其中CatalogueEntry由一个int,一个字符串和一个状态(先前已定义)组成。我想根据它们的整数排序列表中的元素(也称为目录条目)。有什么办法可以做到吗?
答案 0 :(得分:1)
是的,但是您必须通过告诉一个CatalogueEntry大于另一个的CatalogueEntry来告诉程序什么意思。有多种方法可以实现,但是一个示例是Comparable接口
public class CatalogueEntry implements Comaparable<CatalogueEntry> {
private int yourInt;
//methods, variables here
@Override
public int compareTo(CatalogueEntry other){
if(this.yourInt == other.yourInt) return 0;
if(this.yourInt > other.yourInt) return 1;
return -1;
}
如您所见,您必须实现compareTo方法,如果另一个条目与此相等,则返回0;如果-1较大,则返回-1;如果较小则返回1!这样,程序将知道如何对这些对象进行排序,您只需使用ArrayList的sort方法即可!
答案 1 :(得分:0)
使用Comparable
和Comparator
,您可以执行此操作。本示例将使您清楚地了解如何按对象的属性对列表进行排序。在此示例中,Student
个对象按其年龄排序。