コレクションのコレクションを単一のセットに変換するための、この便利な汎用関数を作成しました。
public static <T> Set<T> makeSet(Collection<Collection<T>> a_collection) {
Iterator<Collection<T>> it = a_collection.iterator();
Set<T> result = new HashSet<T>();
while (it.hasNext()) {
result.addAll(it.next());
}
return result;
}
それから私はそれを呼び出そうとしました:
List<List<String>> resultLists = ... ;
Set<String> labelsSet = CollectionsHelper.makeSet(resultLists);
次のエラーを受け取りました。
<T>makeSet(java.util.Collection<java.util.Collection<T>>) in CollectionsHelper
cannot be applied to (java.util.List<java.util.List<java.lang.String>>)
今、 aList
は Collection
であり、 aString
は T
です。では、なぜこれが機能しないのですか?どうすれば修正できますか?