2013-11-22 269 views
0

如何從我已知的陣列列表中刪除項目。我知道remove()方法,但它似乎不起作用;從陣列列表中刪除項目

ArrayList <String> namen = new ArrayList <>(); 

    System.out.print("Voer een naam in:"); 

    Scanner in = new Scanner (System.in); 
    for (int i = 0; i<10; i++){ 
     namen.add(in.next()); 
     int aantalNamen = namen.size(); 
     System.out.println(namen); 
     System.out.println(aantalNamen); 
     if(i == 10){ 
      namen.remove(9); 
     } 
    } 

如何更改此代碼以使其工作?

回答

0
if(i == 10){ 
     namen.remove(9); 
} 

此代碼在循環內部不起作用。因爲當我得到10循環將終止。 所以你把代碼移出循環。這樣

for (int i = 0; i<10; i++){ 
    namen.add(in.next()); 
    int aantalNamen = namen.size(); 
    System.out.println(namen); 
    System.out.println(aantalNamen); 
} 
namen.remove(9); 
+0

它也可以在循環內移除,只是'i'的值必須遞增 – Jhanvi

+0

但循環包含**我<10 ** – subash

2

由於for循環中的條件i < 10for中的if永遠不會滿足。 for將終止一次i變爲10,因此,條件if(i == 10){永遠不會成立。這就是爲什麼沒有任何東西從您的列表中刪除。

您需要將if的條件更改爲i==9或將for中的條件更改爲i <= 10

0

我怎樣才能改變這種代碼,使其工作?

要工作,您需要比較i==9,在if聲明。

if(i == 9){ 
    namen.remove(9); 
    }