在开发中,有时会碰到这样的需求,取两个集合的并集,也就是说如果其中一个集合中的元素是\[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 + " ");
}
}
}
还没有评论,来说两句吧...