8 种循环删除 List 元素的方法:

public List list = Arrays.asList("张三", "李四", "王五", "老六", "李东", "李想", "苟八");

  • 普通 for 循环删除(不可靠)

  • 普通 for 循环提取变量删除(抛异常)

  • 普通 for 循环倒序删除(可靠)

public void remove() {
    List list = new ArrayList(initList);
    for (int i = list.size() - 1; i > 0; i--) {
        String str = list.get(i);
        if (str.startsWith("李")) {
            list.remove(i);
        }
    }
    System.out.println(list);
}

  • 增强 for 循环删除(抛异常)

  • 迭代器循环迭代器删除(可靠)

public void remove() {
    List list = new ArrayList(initList);
    for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
        String str = iterator.next();
        if (str.contains("李")) {
            iterator.remove();
        }
    }
    System.out.println(list);
}

  • 迭代器循环集合删除(抛异常)

  • 集合 forEach 方法循环删除(抛异常)

  • stream filter 过滤(可靠)

public void remove() {
    List list = new ArrayList(initList);
    list = list.stream().filter(e -> !e.startsWith("李")).collect(Collectors.toList());
    System.out.println(list);
}

转载自: 带了一个 3 年的开发,不会循环删除 List 中的元素,心态崩了。。

你可能感兴趣的:(list,java,servlet)