0

可能重复:
对对象集合进行
排序根据姓名对联系人数组列表进行排序?

给你一个快速的问题:

我有一个ArrayList<MyObject>充满MyObject对象。我希望它们根据整数变量进行排序MyObject

有没有现成的方法来实现这一点,还是我必须自己编写一个快速排序/合并排序?

谢谢你的时间,迪米特里斯

4

4 回答 4

2

您需要实现 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);
 }
 }
于 2013-01-24T19:41:23.657 回答
1

您想查看比较器,它们可以让您以任何您想要的方式定义排序顺序。这是文档http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html

于 2013-01-24T19:38:22.837 回答
1

您可以使用Array.sort(...)You must only implement a Comparatorfor your MyObjector make it Comparable

于 2013-01-24T19:38:40.267 回答
1

您还可以使用Collections.sort()库并传入您的集合 ( ArrayList) 和专Comperator为您的对象设计的。

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html[enter link description here][1]
于 2013-01-24T19:41:46.523 回答