1

タイトルが示すように、整数のペア (int ai と int bi) で構成されるリストがあります。ペアワイズ関係を維持しながら、int a のみに基づいてこのリストを並べ替えたいと思います。Java が持っている標準ライブラリのいくつかでこれを行う効率的な方法があるかどうか疑問に思っていました。前もって感謝します!

編集:私の正確な実装は、ArrayList<ArrayList<Integer>>それぞれArrayList<Integer>が正確に2つの整数(aiとbi)を持つです。混乱して申し訳ありません。

4

4 に答える 4

1

を受け取るコレクションsort()または配列sort()メソッドをComparator使用し、ペアの最初の整数のみを検査するカスタム コンパレータを使用します。

このようなもの(大まかに、正確なタイプに応じて):

Collections.sort(myList, new Comparator<IntegerPair>() {
  @Override public int compare(IntegerPair x, IntegerPair y) {
    return x.first - y.first;
  }
});

ソートアルゴリズムは(Javadocs に従って)安定しているため、リストは説明に従ってソートされます。

于 2012-05-04T20:46:20.513 に答える
0

整数ペアにhttp://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlを実装し、http://docs.oracle.com/javase/6/ の sort() を使用します。 docs/api/java/util/Collections.html

于 2012-05-04T20:41:09.710 に答える
0

整数ペアを表すクラスを作成することをお勧めします。このクラスは Comparable を実装する必要があります。sort() を使用して並べ替えます。

于 2012-05-04T20:41:21.287 に答える