From 50eb7dcb2ce06b90e653fbf805114eece0810722 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 14 Mar 2026 11:50:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day06-Predicate=E7=9A=84?= =?UTF-8?q?=E7=BB=83=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/functional_interface02/Demo12.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) 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; } }