2014-06-06 73 views
-6
public static List subList(List l) 
{ 
    List evenL = new ArrayList(); 

    for (int i = 0; i < l.size(); i++) 
    { 
     if (l.get(i))%2 ==0) 
     { 
      evenL.add(i); 
     } 
    } 
    return evenL; 
} 

在這種情況下得到%未定義的錯誤。不知道如何檢索使用偶數創建新列表。Java創建一個偶數ArrayList

+5

我想你在 –

+0

的,如果()行錯過了一個小支架,請學習如何編寫代碼的編譯器可以將W/O語法警告第一。 – Smutje

+0

@Smutje,感謝您關注我的語法錯誤,但正如您從我的代碼中可以清楚地看到的,我對ArrayLists的工作很陌生,現在只能看到如何解決這個問題,因爲來自論壇的其他人的幫助。 – Sheli

回答

1

您有額外的),因爲它之前說過。

而您的List沒有用Integer參數化。

public static List<Integer> subList(List<Integer> l) { 
    List<Integer> evenL = new ArrayList<Integer>(); 

    for (int i = 0; i < l.size(); i++) 
    { 
     if (l.get(i) % 2 ==0) 
     { 
      evenL.add(i); 
     } 
    } 
    return evenL; 
} 
0

您在if聲明中有額外的)。將其更改爲:

if (l.get(i) % 2 ==0) 
{ 
    evenL.add(i); 
} 

如果您使用,您可以使用Stream API並做所需的過濾器在單個語句:

public static List<Integer> subList(List<Integer> myList) { 
    return mylist.stream() 
       .filter(x -> x % 2 == 0) 
       .collect(Collectors.toList()); 
} 
2

List包含Integer類型?如果是這樣,你需要仿製藥申請的if語句中使用的List使get可以檢索存儲的值

public static List subList(List<Integer> list) { 
    List<Integer> evenList = new ArrayList<>(); 

    for (int i = 0; i < list.size(); i++) { 
     if (list.get(i) % 2 == 0) { // minus) 
      evenList.add(i); 
     } 
    } 

    return evenList; 
} 
+0

如何參數化返回類型? :) –

+0

是的,當然:) – Reimeus

0

使用

List<Integer> 

否則列表元素是Object,你可以不適用算術運算爲Object

0
if (l.get(i))%2 ==0) 

應該

if (l.get(i)%2 == 0)