我有一个数组列表:
ArrayList<Integer> example = new ArrayList<Integer>();
example.add(1);
example.add(1);
example.add(2);
example.add(3);
example.add(3);
所以我想让其他三个 ArrayLists 包含其中一个相同的值(其中只有一个值 ArrayList 将只有一个)。
那可能吗?
这是一种过滤掉元素的方法,已实现:使用泛型 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;
}
}