进阶day06-Predicate的练习
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
package com.inmind.functional_interface02;
|
package com.inmind.functional_interface02;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
数组当中有多条“姓名+性别”的信息如下,请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中,需要同时满足两个条件:
|
数组当中有多条“姓名+性别”的信息如下,请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中,需要同时满足两个条件:
|
||||||
|
|
||||||
@@ -15,5 +18,27 @@ package com.inmind.functional_interface02;
|
|||||||
public class Demo12 {
|
public class Demo12 {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
String[] array = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女" };
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user