私はArrayListを持っています:
ArrayList<Integer> example = new ArrayList<Integer>();
example.add(1);
example.add(1);
example.add(2);
example.add(3);
example.add(3);
だから私は、同じ値を含む他の3つのArrayListsを作成したいと思います(ArrayListには1つの値しかありません)。
それは可能ですか?
実装された要素をフィルター処理する方法を次に示します。値をカプセル化するために、(ジェネリック クラスで) ジェネリック Map を使用します。
並べた様子がこちら。分割したいオブジェクトのタイプでインスタンス化します。
public class UniqueSplitter<T> {
public Map<T, List<T>> filterOutElements(final List<?> theCandidateList) {
final Map<T, List<T>> candidateMap = new HashMap<>();
for(Object element : theCandidateList) {
if(candidateMap.containsKey(element)) {
candidateMap.get(element).add((T) element);
} else {
final List<T> elementList = new ArrayList<>();
elementList.add((T) element);
candidateMap.put((T)element, elementList);
}
}
return candidateMap;
}
}