好吧,一种方法是迭代第二个列表,同时检查第一个列表中是否存在每个元素.如果没有,请添加它.
public static void smartCombine(ArrayList first, ArrayList second) {
for(Integer num : second) { // iterate through the second list
if(!first.contains(num)) { // if first list doesn't contain current element
first.add(num); // add it to the first list
}
}
}
另一种方法是将值保存在一个集合(如HashSet)中,不允许任何重复.然后你可以将它们组合起来:
first.addAll(second);
您可以做的另一种方法是首先从第二个列表中存在的第一个列表中删除所有元素(那些将被复制的元素).然后,将第二个列表的所有元素添加到第一个列表中.
public static void smartCombine(ArrayList first, ArrayList second) {
first.removeAll(second); // remove elements that would be duplicated
first.addAll(second); // add elements from second list
}