diff --git a/javaSE-day07/src/com/inmind/functional_interface02/Demo12.java b/javaSE-day07/src/com/inmind/functional_interface02/Demo12.java index 2deb7a2..59564bf 100644 --- a/javaSE-day07/src/com/inmind/functional_interface02/Demo12.java +++ b/javaSE-day07/src/com/inmind/functional_interface02/Demo12.java @@ -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 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 getList(Predicate p1, Predicate p2, String[] arr) { + ArrayList list = new ArrayList<>(); + //遍历数组,使用2个条件分别对指定的内容进行判断,满足则添加到集合中 + for (String s : arr) {//"迪丽热巴,女" + if (p1.and(p2).test(s)) { + list.add(s); + } + } + return list; } }