Java ArrayList removeIf()方法从ArrayList中删除满足指定条件的所有元素。
removeIf()方法的语法为:
arraylist.removeIf(Predicate<E> filter)
removeIf()参数
filter - 决定是否要删除元素
注意:如果filter返回true,则删除该元素。
removeIf()返回值
如果从arraylist中删除了元素,则返回true。
示例:从ArrayList中删除偶数
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,则删除该元素。
示例2:删除名称中带有“ land”的国家
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,则删除元素。