📜  Java ArrayList removeIf()

📅  最后修改于: 2020-09-27 00:25:49             🧑  作者: Mango

Java ArrayList removeIf()方法从满足条件的数组列表中删除所有元素。

removeIf()方法的语法为:

arraylist.removeIf(Predicate filter)

在这里, arraylistArrayList类的对象。


removeIf()参数

removeIf()方法采用单个参数。

  • filter-决定是否要删除一个元素

removeIf()返回值
  • 如果将元素从arraylist中移除,则返回true

示例:从ArrayList中删除偶数
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList numbers = new ArrayList<>();

        // add elements to the ArrayList
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);
        numbers.add(6);
        System.out.println("Numbers: " + numbers);

        // remove all even numbers
        numbers.removeIf(e -> (e % 2) == 0);;
        System.out.println("Odd Numbers: " + numbers);
    }
}

输出

Numbers: [1, 2, 3, 4, 5, 6]
Odd Numbers: [1, 3, 5]

在上面的示例中,我们创建了一个名为Numbers的数组列表 。注意这一行,

numbers.removeIf(e -> (e % 2) == 0);

这里,

  • e -> (e % 2) == 0)是lambda表达式。它检查元素是否被2除。要了解更多信息,请访问Java Lambda Expression。
  • removeIf() -如果e -> (e % 2) == 0返回true则删除元素。

示例2:删除名称中带有“ land”的国家
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList countries = new ArrayList<>();

        // add elements to the ArrayList
        countries.add("Iceland");
        countries.add("America");
        countries.add("Ireland");
        countries.add("Canada");
        countries.add("Greenland");
        System.out.println("Countries: " + countries);

        // remove all even countries
        countries.removeIf(e -> e.contains("land"));;
        System.out.println("Countries without land: " + countries);
    }
}

输出

Countries: [Iceland, America, Ireland, Canada, Greenland]
Countries without land: [America, Canada]

在上面的示例中,我们使用了Java String contains()方法来检查元素中是否包含平台 。这里,

  • e -> e.contains("land") -如果元素中包含土地 ,则返回true
  • removeIf() -如果e -> e.contains("land")返回true则删除元素。