思路是循环,判断找出想要删除的元素,然后删除。
1、普通的循环,迭代器
第一时间想到的方法。
① for循环遍历删除指定元素
public static void main(String[] args) {
// 创建一个list
List<String> list = new ArrayList<>(Arrays.asList("Lambda方式删除1", "Lambda方式删除2", "奸细", "Lambda方式删除4"));
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("奸细")) {
list.remove(i);
}
}
}
或者这样
public static void main(String[] args) {
// 创建一个list
List<String> list = new ArrayList<>(Arrays.asList("Lambda方式删除1", "Lambda方式删除2", "奸细", "Lambda方式删除4"));
for (String s : list) {
if ("奸细".equals(s)) {
list.remove(s);
}
}
}
或
public static void main(String[] args) {
// 创建一个list
List<String> list = new ArrayList<>(Arrays.asList("Lambda方式删除1", "Lambda方式删除2", "奸细", "Lambda方式删除4"));
// 使用迭代器删除“奸细”
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
if ("奸细".equals(iterator.next())) {
iterator.remove();
}
}
}
推荐使用
2、使用JDK8的Lambda表达式
public static void main(String[] args) {
// 创建一个list
List<String> list = new ArrayList<>(Arrays.asList("Lambda方式删除1", "Lambda方式删除2", "奸细", "Lambda方式删除4"));
// Lambda方式删除“奸细”
list.removeIf(s -> "奸细".equals(s));
// 遍历查看
list.forEach(s -> System.out.println(s));
}