兩個List去掉重複元素放在一個List中去【兩個Listsize值非常大】

  1. /* 
  2.  * 思路: 
  3.  * 1.取得兩個list的相同元素:list.retainAll(E)方法 
  4.  * 2.兩個list分別去掉相同的元素:list.removeAll(E); 
  5.  * 3.將剩下的兩個List分別加入到一個新的List去:addAll 
  6.  */  
  7. public class Test1 {  
  8.     public static void main(String[] args) {  
  9.         List list1 = new ArrayList();  
  10.         Random random = new Random();  
  11.            
  12.         //list1隨機添加1千個數據  
  13.         for(int i=1;i<1000;i++){  
  14.             list1.add(random.nextInt(i)*10);  
  15.         }  
  16.           
  17.         List list2 = new ArrayList();  
  18.         //list2隨機添加1 萬個數據  
  19.         for(int i=1;i<10000;i++){  
  20.             list2.add(random.nextInt(i)*100);  
  21.         }  
  22.         System.out.println("list1的大小:       "+list2.size());  
  23.           
  24.           
  25.         //temp用來保存兩者共有的數據  
  26.         List temp = new ArrayList(list1);  
  27.         System.out.println(temp);  
  28.           
  29.         //retainAll(Collection<?> c)   
  30.         //僅在列表中保留指定 collection 中所包含的元素  
  31.         //這裏的意思是temp只保留list2中有的元素  
  32.           
  33.         //取得相同的元素  
  34.         temp.retainAll(list2);  
  35.           
  36.         System.out.println(temp);  
  37.         //從list1和list2中去掉兩者共同有的數據  
  38.         list1.removeAll(temp);  
  39.         list2.removeAll(temp);  
  40.   
  41.   
  42.         List list3 = new ArrayList();  
  43.         list3.addAll(list1);  
  44.         list3.addAll(list2);  
  45.            
  46.         System.out.println(list3.size());   
  47.           
  48.         }  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章