可能重复:
对对象集合进行
排序根据姓名对联系人数组列表进行排序?
给你一个快速的问题:
我有一个ArrayList<MyObject>
充满MyObject
对象。我希望它们根据整数变量进行排序MyObject
。
有没有现成的方法来实现这一点,还是我必须自己编写一个快速排序/合并排序?
谢谢你的时间,迪米特里斯
可能重复:
对对象集合进行
排序根据姓名对联系人数组列表进行排序?
给你一个快速的问题:
我有一个ArrayList<MyObject>
充满MyObject
对象。我希望它们根据整数变量进行排序MyObject
。
有没有现成的方法来实现这一点,还是我必须自己编写一个快速排序/合并排序?
谢谢你的时间,迪米特里斯
您需要实现 Comparable 接口并覆盖 compareTo。以下示例我假设有一个成员变量“名称”,您将在其上比较对象。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class MyObject implements Comparable<MyObject>{
private String name;
private int id;
public String getName() {
return name;
}
public MyObject(String name, int id) {
super();
this.name = name;
this.id = id;
}
@Override
public int compareTo(MyObject o) {
return name.compareTo(o.getName());
}
@Override
public String toString() {
return name+"\t"+id+"\n";
}
}
public class Test {
public static void main(String[] args) {
List<MyObject> list = new ArrayList<MyObject>();
list.add(new MyObject("John", 10));
list.add(new MyObject("Mark", 11));
list.add(new MyObject("Steve", 9));
Collections.sort(list);
System.out.println("Sorted list is :"+list);
}
}
您想查看比较器,它们可以让您以任何您想要的方式定义排序顺序。这是文档http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html
您可以使用Array.sort(...)
You must only implement a Comparator
for your MyObject
or make it Comparable
。
您还可以使用Collections.sort()
库并传入您的集合 ( ArrayList
) 和专Comperator
为您的对象设计的。
http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html[enter link description here][1]