Java8新增的removeIf(Predicatefilter)⽅法、Predicate的⽤
法
Java8新增的removeIf(Predicate filter)⽅法:该⽅法将会批量删除符合filter条件的所有元素,该⽅法需要⼀个Predicate对象作为参数,Predicate也是函数式接⼝,因此可以使⽤Lambda表达式。
例:
public class PredicateTest {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王⼆");
list.add("李⿇⼦");
list.add("李三");
for (String s : list) {
System.out.println(s);比例的定义
}
}
}
运⾏结果
ArrayList中的源码
predicate接⼝的作⽤不仅仅在此,可以为⾃⼰想要的某些东西进⾏过滤:如下
public class PredicatTest2 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
柚子皮的做法
list.add("⽔煮鱼");
list.add("酸菜鱼");
list.add("⿇辣鱼");
list.add("⿇婆⾖腐");
list.add("回锅⾁");
list.add("鱼⾹⾁丝");
list.add("⽔煮⾁⽚");
list.add("宫保鸡丁");
list.add("剁椒鱼头");
秘制酱牛肉list.add("夫妻肺⽚");
雅思成绩有效期
//统计list中名字只有三个字符的菜品草草青
品行端正int count1 = getCount(list, obj -> ((String) obj).length() == 3);
System.out.println("菜名只有三个字的菜品有" + count1 + "个");
//统计list中关于鱼的菜品有⼏个
int count2 = getCount(list, obj -> ((String) obj).contains("鱼"));
System.out.println("list中关于鱼的菜品有" + count2 + "个");
酒店管理主要学什么}
public static int getCount(Collection collection, Predicate predicate) { int count = 0;
for (Object o : collection) {
if (st(o)) {
count++;
}
}
return count;
下定决心做某事}
}