- /*
- * 思路:
- * 1.取得两个list的相同元素:list.retainAll(E)方法
- * 2.两个list分别去掉相同的元素:list.removeAll(E);
- * 3.将剩下的两个List分别加入到一个新的List去:addAll
- */
- public class Test1 {
- public static void main(String[] args) {
- List list1 = new ArrayList();
- Random random = new Random();
- //list1随机添加1千个数据
- for(int i=1;i<1000;i++){
- list1.add(random.nextInt(i)*10);
- }
- List list2 = new ArrayList();
- //list2随机添加1 万个数据
- for(int i=1;i<10000;i++){
- list2.add(random.nextInt(i)*100);
- }
- System.out.println("list1的大小: "+list2.size());
- //temp用来保存两者共有的数据
- List temp = new ArrayList(list1);
- System.out.println(temp);
- //retainAll(Collection<?> c)
- //仅在列表中保留指定 collection 中所包含的元素
- //这里的意思是temp只保留list2中有的元素
- //取得相同的元素
- temp.retainAll(list2);
- System.out.println(temp);
- //从list1和list2中去掉两者共同有的数据
- list1.removeAll(temp);
- list2.removeAll(temp);
- List list3 = new ArrayList();
- list3.addAll(list1);
- list3.addAll(list2);
- System.out.println(list3.size());
- }
- }