3

ポイント一覧があります。これを ArrayList の ArrayList として表現しました。リストが整数、浮動小数点数などを格納し、それらを同じように扱うことができるように、ジェネリックを使用しようとしています。ので、私は持っています:

ArrayList<ArrayList<? extends Number>>. 

各内部リストの 1 つの要素に基づいてこれらのリストを比較する必要があります。

そのために、Collections.sort で使用しているカスタム Comparator を作成しました。

コンパレータは次のようになります。

int compare(ArrayList<? extends Number> a, ArrayList<? extends Number> b )
{
    return a.get(index).compareTo(b.get(index))
}

もちろん、これはコンパイルされません。コンパイラは、ワイルドカード クラスの compareTo メソッドがないと文句を言います。

私がやろうとしていることは可能ですか?

4

1 に答える 1

5

Comparatorあなたのクラスを次のように定義するのはどうですか:

class MyComparator<T extends Number & Comparable<T>> 
                                          implements Comparator<ArrayList<T>> {
    @Override
    public int compare(ArrayList<T> a, ArrayList<T> b) {
        return a.get(index).compareTo(b.get(index));
    }
}
于 2012-11-07T02:50:33.380 に答える