-1

重複の可能性:
2 つのフィールドによる Java ソートの問題

次のようなユーザーオブジェクトがあります

class user
{
    String firstName;
    String lastName;
}

これらのオブジェクトを含むがあり、List名前で並べ替える必要があり、名前が一致する場合は、それらの名前のみを姓で並べ替えます。

4

2 に答える 2

2

ここにはいくつかのアプローチがあります。

Comparatorを実装し、これを標準 Java Collection lib で使用してコレクションを並べ替えることができます (例: Collections.sort() ) 。

Comparator<MyObject> comparator = ....
Collections.sort(listOfObjects, comparator); // note-  will sort in place

別の方法は、オブジェクトがComparableを実装することです。これにより、オブジェクトにネイティブの並べ替え順序が導入されます。

両方のアプローチを同時に実装できることに注意してください。前者は、さまざまな並べ替え戦略 (名前順、日付順、サイズ順など) を実装する場合に便利です。後者は、ネイティブ順序付けの概念と Java ライブラリ内の標準ソート機能を利用したい場合に便利です。

オブジェクトの順序付けに関する Java チュートリアルを確認してください。

于 2013-01-10T09:45:02.843 に答える
0

Comparable を実装compareToし、必要なことを行う独自のメソッドを使用する場合。

別のオプションは、Comparator他の多くの回答で示されているようにカスタムを使用することです。

両方のアプローチを示す素晴らしい記事は、こちらにあります

于 2013-01-10T09:45:40.597 に答える