私はC++の経験が少しあるJavaのnoobです。次のような行に沿ってJavaのセットを作成しようとしています。Javaジェネリックとセットのセット
Set< Set<String> > collection = new TreeSet< Set<String> >();
Set<String> entry = new TreeSet<String>();
collection.add(entry);
これは正常に構築されますが、プログラムの実行時にjava.util.TreeSet cannot be cast to java.lang.Comparable
例外がスローされます。
ホイールを再実装することなく、Javaのセットをどのように設定できますか?
また、壊れたコード(型の不一致など)をコンパイルできるJavaとの取り引きは何ですか?
フィードバックをいただきありがとうございます。 TreeSet
の契約で
私はこの特定のケースでHashSetを使用したいと思います(問題については、biziclopの説明を参照してください)。 – Raveline
アウターセットはソートセットにする必要がありますか?そうであれば、ソートルールは何ですか? – nansen
注文は関係ありません。私は問題を説明するためにTreeSetを使用しました。私の推測では、HashSetも同様です(ただし、処理されたデータについて十分な知識がない場合は、ヒューリスティック(つまり、ハッシュ関数)に依存するアルゴリズムはほとんど気になりません)。 – Meh