2013-11-22 322 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); 
    }