0

ここに質問があります:

2つの列に基づくJavaソート

しかし、コンパレータを使用せずに行う方法を誰かが説明できますか?言い換えると、コンパレータは複数の列をソートするために内部的にどのように機能しますか?

4

1 に答える 1

0

sortメソッドには、行のペアの相対的な順序を見つけるための何らかの方法が必要です。通常の並べ替えを使用してそれを行うには、2つのサポートされている方法があります。Comparableを実装するクラスのインスタンスを使用して行を表すか、Comparatorを使用します。

これらのいずれも実行したくない場合は、独自の特殊なソートメソッドを作成する必要があります。2つの行を比較する必要がある場合は、最初に優先度の高い列を調べます。その列の行が異なる場合は、順序が決まります。その列で等しい場合は、2番目の列に基づいて並べ替えます。

とはいえ、Comparable行またはComparatorのいずれかで標準の並べ替えを使用する方が、並べ替えロジックと比較ロジックを混同するよりもはるかに優れています。コンパレータはより柔軟な方法です。

于 2012-11-18T17:46:52.700 に答える