在開發中,有時會碰到這樣的需求,取兩個集合的並集,也就是說如果其中一個集合中的元素是[1,2,3,4,5],另一個集合中的元素是[4,5,6,7,8],那麼取這兩個集合的並集得到的結果就是[1,2,3,4,5,6,7,8]。
合併兩個集合的代碼如下:
/**
* 取兩個集合的並集,並返回
* @param listOne List
* @param listTwo List
* @return List
*/
private List<Integer> mergeTwoList(List<Integer> listOne, List<Integer> listTwo) {
for(Integer num : listTwo) {
if(!listOne.contains(num)) {
listOne.add(num);
}
}
return listOne;
}
測試結果的代碼如下:
import java.util.ArrayList;
import java.util.List;
public class MergeListTest {
public static void main(String[] args) {
MergeListTest mergeListTest = new MergeListTest();
// 初始化兩個集合
List<Integer> listOne = new ArrayList<>();
List<Integer> listTwo = new ArrayList<>();
mergeListTest.initData(listOne, listTwo);
// 取兩個集合的並集
List<Integer> intList = mergeListTest.mergeTwoList(listOne, listTwo);
// 打印合並後的集合
mergeListTest.print(intList);
}
private void initData(List<Integer> listOne, List<Integer> listTwo) {
listOne.add(1);
listOne.add(2);
listOne.add(3);
listOne.add(4);
listOne.add(5);
listTwo.add(4);
listTwo.add(5);
listTwo.add(6);
listTwo.add(7);
listTwo.add(8);
}
/**
* 取兩個集合的並集,並返回
* @param listOne List
* @param listTwo List
* @return List
*/
private List<Integer> mergeTwoList(List<Integer> listOne, List<Integer> listTwo) {
for(Integer num : listTwo) {
if(!listOne.contains(num)) {
listOne.add(num);
}
}
return listOne;
}
private void print(List<Integer> intList) {
for(Integer num : intList) {
System.out.print(num + " ");
}
}
}