2012-12-31 66 views
0

即時嘗試將兩個數組分開我試圖做的是一個列表包含一些條紋,第二個列表包含一些其他字符串例如:列表1有qw,we,er,rt,ty和List2有我們,呃當我從列表2的輸出應該是劃分列表1 - QW,室溫,TY我的繼承人代碼java集合和錯誤列表混合問題

package Arraylist; 

import java.util.*; 
/** 
* 
* @author Charith 
*/ 
public class arList { 
    public static void main(String args[]) { 
     String word[] = { 
      "Hello", "Funny", "Bunny", "Honey" 
     }; 
     List <String> l1 = new ArrayList <String>(); 

     for (String s: word) { 
      l1.add(s); 
     } 



     String deleteWord[] = { 
      "Funny", "Bunny" 
     }; 
     List <String> l2 = new ArrayList <String>(); 

     for (String r: deleteWord) { 
      l2.add(r); 
     } 


     for (int i = 0; i < l1.size(); i++) { 
      System.out.printf("%s ", l1.get(i)); 
     } 


     editlist(l1, l2); 
     System.out.println(); 
     for (int i = 0; i < l1.size(); i++) { 
      System.out.printf("%s ", l1.get(i)); 
     } 


     * * public static void editlist(Collection <String> list1, Collection <String> list2) * * { 
      Iterator <String> it = list1.iterator(); 
      while (it.hasNext()) { 
       if (list2.contains(it.next())) 
        it.remove(); 
      } 


     } 

    } 
} 

,但我得到的線錯誤公共靜態無效的修改列表(收藏列表1,收藏列表2)有人可以告訴我如何糾正該錯誤,並可以有人exp什麼是躺在我* 收集 * S在java中我谷歌,但其真正的混亂

+2

將來,爲什麼不告訴我們錯誤是什麼?此外,修正縮進以使您的問題更容易閱讀......並且理想情況下,作爲樣式,使用'Foo [] array'而不是'Foo array []'。要麼可以工作,但首先在Java中更習慣。 –

+0

此外,還有一個很好的函數Arrays.asList,讓我們來簡單明瞭地設置這些常量列表:列表 l2 = Arrays.asList(「Funny」,「Bunny」); – sharakan

回答

2

看看你的方法聲明來自哪裏。它直接在此之後:

for(int i =0;i<l1.size();i++){ 
    System.out.printf("%s " ,l1.get(i)); 
} 

換句話說,它仍然是main方法的一部分。在聲明新方法之前,您需要額外的大括號才能完成main方法。你不能聲明一個方法而不是另一個方法(除了內部類,你不用這裏)。

還有更好的方法來實現你想要的東西,但這是一個不同的問題 - 正如Priyank的答案所述,removeAll將是一個更簡單的方法。

+0

感謝您的幫助,並且有關收集課程的好消息,而不是使用谷歌搜索 – chawb

2

可以達到同樣的用collectionUtil的的removeAll API。

list1.removeAll(list2); 

看看removeAll API。它將刪除list1中列表2中的所有元素。所以在集合論中它是理想的A-B