进阶day06-Predicate的练习

This commit is contained in:
2026-03-14 11:50:46 +08:00
parent 7d6dee4aed
commit 50eb7dcb2c

View File

@@ -1,5 +1,8 @@
package com.inmind.functional_interface02;
import java.util.ArrayList;
import java.util.function.Predicate;
/*
数组当中有多条“姓名+性别”的信息如下请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中需要同时满足两个条件
@@ -15,5 +18,27 @@ package com.inmind.functional_interface02;
public class Demo12 {
public static void main(String[] args) {
String[] array = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女" };
//"迪丽热巴,女"-----["迪丽热巴","女"]
ArrayList<String> list = getList(
(String s)->{
return s.split(",")[1].equals("");
},
(String s)->{
return s.split(",")[0].length() ==4;
},
array
);
System.out.println(list);
}
//定义一个方法接收2个条件predicate数组返回一个集合
public static ArrayList<String> getList(Predicate<String> p1, Predicate<String> p2, String[] arr) {
ArrayList<String> list = new ArrayList<>();
//遍历数组使用2个条件分别对指定的内容进行判断满足则添加到集合中
for (String s : arr) {//"迪丽热巴,女"
if (p1.and(p2).test(s)) {
list.add(s);
}
}
return list;
}
}