使用迭代器删除条目的程序

时间:2016-06-21 20:15:07

标签: java arraylist collections iterator

我使用列表编写了代码。但即使我使用remove()方法,输出显示所有单词而不删除。我该怎么做才能克服?

import java.util.*;
public class ListExample1 {

public static void main(String[] args) {

    List<String> strList = new ArrayList<String>();
    //add data into list
    strList.add("ask");
    strList.add("rule");
    strList.add("left");
    strList.add("right");
    strList.add("fight");
    strList.add("fish");
    strList.add("ask");


    //read the data
    for(String str : strList){
        System.out.println(str);
    }
    System.out.println("--------------------------");
    Iterator<String> iteratorRef = strList.iterator(); 

    while(iteratorRef.hasNext()){
        String str = iteratorRef.next();
        System.out.println(str);
        if(str.equals("ask")){
            iteratorRef.remove();
        }
    }

2 个答案:

答案 0 :(得分:2)

您在删除方法后没有写任何print语句,因此您无法看到结果。只需添加打印方法

N

答案 1 :(得分:0)

您在while循环中无条件地打印每个字符串。这是你想要的吗?

while(iteratorRef.hasNext()){
    String str = iteratorRef.next();
    if(str.equals("ask")){
        iteratorRef.remove();
    } else {
        System.out.println(str);
    }
}