import java.util.ArrayList; import java.util.function.Predicate; public class PredicateTest { /* String[] strArray = {"林青霞,30","刘岩,34","张曼玉,35","貂蝉,31","王祖贤,33"}; 字符串数组中有多条数据,通过Predicate 接口的拼装将符合要求的字符串筛选到集合ArrayList中, 并遍历ArrayList集合 要求:同时满足如下要求 1:姓名长度大于2 2:年龄大于33 分析: 1:有两个判断条件,所以需要使用两个Predicate接口,对条件进行判断 2:必须同时满足两个条件,所以可以使用and方法连接两个判断条件 */ public static void main(String[] args) { String[] strArray = {"林青霞,30","刘岩,34","张曼玉,35","貂蝉,31","王祖贤,33"}; // 内部类实现方法 // ArrayList<String> retArr = myFilter(strArray, new Predicate<String>() { // @Override // public boolean test(String s) { // boolean b = s.split(",")[0].length() > 2; // return b; // } // }, new Predicate<String>() { // @Override // public boolean test(String s) { // return Integer.parseInt(s.split(",")[1]) > 33; // } // }); // 采用lambda 方式实现 ArrayList<String> retArr = myFilter(strArray, s -> s.split(",")[0].length() > 2, s -> Integer.parseInt(s.split(",")[1]) >= 33); //遍历数组 System.out.println(retArr); } private static ArrayList<String> myFilter(String[] strArray, Predicate<String> pre1,Predicate<String> pre2){ ArrayList<String> array =new ArrayList<String>(); //遍历数组 for (String str:strArray){ if(pre1.and(pre2).test(str)){ array.add(str); } } return array; } }
使用Predicate 进行条件判断
最新推荐文章于 2024-05-08 18:13:28 发布