(目录)

一、需求

删除list中的元素 Jack

模板代码

package com.example;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Demo {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>(Arrays.asList("Tom", "Jack", "Steve"));

        System.out.println(list);
        // [Tom, Jack, Steve]

        // 删除元素操作

        System.out.println(list);
        // [Tom, Steve]
    }
}

二、循环删除元素

使用for循环倒序删除

int length = list.size();
// 下标范围 [0, length - 1]
for (int i = length - 1; i >= 0; i--) {
    System.out.println(i);
    if ("Jack".equals(list.get(i))) {
        list.remove(i);
    }
}

三、先查找,再删除

开发中,避免在循环中删除元素,采用的是先查找,再删除,逻辑更清晰

// 先查找,再删除
int index = list.indexOf("Jack");
if (index > -1) {
    list.remove(index);
}

四、使用removeIf

JDK1.8可以使用removeIf

// @since 1.8
list.removeIf(x -> "Jack".equals(x));

五、使用Stream.filter

// @since 1.8
list = list.stream()
        .filter(x -> !"Jack".equals(x))
        .collect(Collectors.toList());

参考 带了一个 3 年的开发,不会循环删除 List 中的元素,心态崩了