两个List去掉重复元素放在一个List中去【两个Listsize值非常大】

时间:2021-01-16 19:34:07
  • /* 
  •  * 思路: 
  •  * 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());   
  •           
  •         }