Java 循环删除list中指定元素

  • Java 循环删除list中指定元素
    1.for循环遍历删除指定元素
    2.增强for循环删除指定元素
    3.iterator删除指定元素

1.for循环遍历删除指定元素

List<String> list = new ArrayList<>(Arrays.asList("a","b","c","f","b","e","d"));
        for (int i = 0; i < list.size(); i++) {
            System.out.println("i="+i+"//str="+list.get(i));
            if (list.get(i).equals("b")) {
                list.remove(i);
            }
        }

程序运行结果如图:
如图
由结果分析可知,利用for遍历删除,删除某个元素之后,list的大小发生变化,索引也发生变化,当删除索引为1的b之后,继续根据索引访问索引为2的元素,由于删除的缘故后面元素自动往前移动一位,故此时索引2上的元素已经不再是c,而变成了f,也就是如图所打印出来的结果,故for循环适合删除特定一位元素,不适合循环删除特定元素;

2.增强for循环删除指定元素

List<String> list = new ArrayList<>(Arrays.asList("a","b","c","f","b","e","d"));
    for (String s : list) {
        System.out.println("------"+s+"------");
        if ("b".equals(s)) {
            list.remove(s);
        }
    }

程序运行结果如图:
在这里插入图片描述
3.iterator删除指定元素

 List<String> list = new ArrayList<>(Arrays.asList("a","b","c","f","b","e","d"));
    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
        String next = iterator.next();
        System.out.println("------"+next+"------");
        if ("b".equals(next)) {
            iterator.remove();
        }
    }
    System.out.println(list.toString());

结果如图:
如图
可以正常删除

发布了21 篇原创文章 · 获赞 1 · 访问量 8065

猜你喜欢

转载自blog.csdn.net/AIfurture/article/details/102459059
今日推荐