import java.util.ArrayList; import java.util.function.Predicate; /* - 通过Predicate接口将字符串数组中符合要求的字符串拼装筛到集合ArrayList中 并遍历ArrayList集合 - 同时满足如下要求:姓名长度大于2;年龄大于33 */ public class PredicateTest { public static void main(String[] args) { // 创建集合数组对象, String[] strArray = {"小林子,30", "小岩,34", "小小玉,35", "貂蝉,31", "何俊贤,33"}; // 定义一个集合存放结果 // 调用chek方法,对集合对象数组进行操作,设置判断条件一, // 姓名长度大于2,使用,split方法获取字符串对象,用其长度判断是否大于二 // 判断条件二 // 获取到字符串对象,调用Integer.parseInt方法转化为int数据类型,再判断是否大于33 ArrayList<String> arrayList = chek(strArray, s -> s.split(",")[0].length() > 2, s -> Integer.parseInt(s.split(",")[1]) > 33); // 增强for循环遍历,得到字符串对象,打印输出 for (String string : arrayList) { System.out.println(string); } } // 对集合操作,使用Predicate函数接口,作为判断条件 private static ArrayList<String> chek(String[] s, Predicate<String> pre1, Predicate<String> pre2) { // 创建集合对象 ArrayList<String> array = new ArrayList<String>(); // 对集合对象,遍历,得到字符串对象 for (String str : s) { //对得到的字符串对象进行判断,将得到正确结果给到集合中 if (pre1.and(pre2).test(str)) { array.add(str); } } // 返回集合 return array; } }