Java ArrayList removeIf()方法从ArrayList中删除满足指定条件的所有元素。
removeIf()方法的语法为:
arraylist.removeIf(Predicate<E> filter)
filter - 决定是否要删除元素
注意:如果filter返回true,则删除该元素。
如果从arraylist中删除了元素,则返回true。
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
//创建 ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
//添加元素到 ArrayList
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
numbers.add(6);
System.out.println("数字: " + numbers);
//删除所有偶数
numbers.removeIf(e -> (e % 2) == 0);;
System.out.println("奇数: " + numbers);
}
}输出结果
数字: [1, 2, 3, 4, 5, 6] 奇数: [1, 3, 5]
在上面的示例中,我们创建了一个名为numbers的ArrayList。注意这一行,
numbers.removeIf(e -> (e % 2) == 0);
这里,
e -> (e % 2) == 0) - 是lambda表达式。它检查元素是否能被2整除。要了解更多信息,请访问Java Lambda 表达式。
removeIf() - 如果e -> (e % 2) == 0返回true,则删除该元素。
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
//创建 ArrayList
ArrayList<String> countries = new ArrayList<>();
//添加元素到 ArrayList
countries.add("Iceland");
countries.add("America");
countries.add("Ireland");
countries.add("Canada");
countries.add("Greenland");
System.out.println("国家: " + countries);
//删除所有带land的国家
countries.removeIf(e -> e.contains("land"));;
System.out.println("国家名称不含land的有: " + countries);
}
}输出结果
国家: [Iceland, America, Ireland, Canada, Greenland] 国家名称不含land的有: [America, Canada]
在上面的示例中,我们使用了Java String contains()方法来检查元素中是否包含“land”。这里,
e -> e.contains("land") - 如果元素中包含“land”,则返回true
removeIf() - 如果e-> e.contains("land")返回true,则删除元素。