Java ArrayList removeIf()
方法 用于删除(移除)所有满足特定条件的arraylist元素。
语法
语法如下:boolean removeIf(Predicate<? super E> filter)
参数
- filter : 过滤方法,用于判断要删除的元素
返回值
成功过滤或者说是删除返回true,失败返回false。
例子
介绍2个例子了解该函数的使用方法
例1
过滤指定的元素,这里判断字符串中是否包含字符串'so'
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> arrayList= new ArrayList<String>();
arrayList.add("yxjc123.com");
arrayList.add("taobao.com");
arrayList.add("baidu.com");
arrayList.add("sohu.com");
arrayList.removeIf(item->item.contains("so"));//过滤sohu.com
System.out.println("移除元素后为: "+arrayList);
}
}
输出:
移除元素后为: [yxjc123.com, taobao.com, baidu.com]
例2
过滤对象元素,过滤条件是age>23,如下:
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<Employee> arrayList= new ArrayList<Employee>();
Employee e1 = new Employee("张三","male", 22);
Employee e2 = new Employee("李四","male", 24);
Employee e3 = new Employee("王五","male", 26);
arrayList.add(e1);
arrayList.add(e2);
arrayList.add(e3);
arrayList.removeIf(item->item.getAge()>23);//过滤年龄大于23的
System.out.println("移除元素后为: "+arrayList);
}
}
//JavaBean.java
class Employee{
private String name;
private String sex;
private Integer age;
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
public Employee(String name, String sex, Integer age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
输出:移除元素后为: [Employee{name='张三', sex='male', age=22}]