0

重複の可能性:
オブジェクトのコレクションの
並べ替え 名前に基づいて連絡先の ArrayList を並べ替えていますか?

簡単な質問:

私はオブジェクトでArrayList<MyObject>いっぱいです。MyObjectの整数変数に基づいて並べ替えたいと思いますMyObject

これを実装する準備ができている方法はありますか、または自分でクイックソート/マージソートを作成する必要がありますか?

時間をありがとう、ディミトリス

4

4 に答える 4

2

Comparableインターフェースを実装し、compareToをオーバーライドする必要があります。次の例では、オブジェクトを比較するメンバー変数「name」があると想定しています。

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

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 に答える