1

firstName、lastName、address、email、および phoneNumber の arrayList と、これらの 5 つのインデックスすべてを持つ複数の「エントリ」の arrayList があります。これら 5 つの値すべてを取得および設定するメソッドはすべて Entry クラスにありますが、エントリの追加、変更、削除、および並べ替えは Contact List クラスで行われます。

エントリを姓で並べ替え、ContactList クラスに出力しようとしています。私は持っている:

public void listEntries()
    {
        Collections.sort(entries);

        for (int i = 0; i < entries.size(); i++)
        {

            entries.get(i).print();
        }
    }

何をソートするかを定義する何かが欠けていることはわかっていますが、Collections.sort を使用する必要があるかどうかさえわかりません。助言がありますか?

4

2 に答える 2

1

追加の引数としてコンパレーターがありませんsort-たとえば

Collections.sort(entries, new Comparator<List<String>>() {
    @Override
    public int compare(List<String> o1, List<String> o2) {
        return o1.get(1).compareTo(o1.get(1));
    }
});
于 2012-12-09T22:33:41.247 に答える
1

指定されたエントリを持つクラス(エントリはそのクラスだと思います)は、Comparableインターフェイスを実装する必要があります。次に、コレクションでソートを使用できます。順序は自然な順序で与えられます (Comparable インターフェイスの実装メソッドで独自の順序を作成するのはあなた次第です)。

于 2012-12-09T21:33:18.223 に答える