Java 循环删除list中指定元素

Java 循环删除list中指定元素

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

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

		List 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);
            }
        }

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

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

        List 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);
            }
        }

程序运行结果如图:
Java 循环删除list中指定元素_第2张图片

3.iterator删除指定元素

        List list = new ArrayList<>(Arrays.asList("a","b","c","f","b","e","d"));
        Iterator 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());

结果如图:
Java 循环删除list中指定元素_第3张图片
可以正常删除

你可能感兴趣的:(java)