0

2D配列を直接ソートするためのJavaに組み込まれたメソッドはありますか?

例:名と電話番号の配列がある場合、各名前が組み込み機能を使用して電話番号を保持しながら、名に従って並べ替えることはできますか?

4

2 に答える 2

2

2D配列を以下のクラスの1D配列にしてから、カスタムコンパレータで組み込みメソッドを使用して並べ替えを行います。このクラスをそれ自体と比較可能にすることもできます。

class Person{
    public String name;
    public String phNumber;
}

TreeMapまたは、sansixが提案するように、名前としてキーを、phNumberとして値を使用してを使用します。コンパレータはもう必要なく、データは常にソートされます。

于 2013-02-02T06:46:47.343 に答える
2

あなたのデータ構造[[name1, name2, ...], [phone1, phone2,...]]ですか[[name1, phone1], ...]?後者の場合は、コンパレータを使用できます。

class NameAndPhoneComparator implements Comparator<String[]> {
    public int compare(String[] o1, String[] o2) {
        int c = o1[0].compareTo(o2[0]);
        if (c != 0) return c;
        return o1[1].compareTo(o2[1]);
    }
}

次に、Arrays.sortを使用します

于 2013-02-02T06:55:47.897 に答える