常用的函式接口_or&engate、集合信息拆选
常用的函式接口_or&engate
案例:
public class Han8 {
/**
* 定义一个方法String类型的字符串
* 传递一个Predicate接口,泛型使用String
* 使用Predicate中test对字符串进行判断,并把判断结果返回
*/
public static boolean chenkString(String s, Predicate<String> predicate,Predicate<String> predicate1){
return predicate.and(predicate1).test(s);
}
public static void main(String[] args) {
String a ="aaabbbccc";
boolean b = chenkString(a, (String s) -> {
return s.length() > 5;
}, (String s) -> {
return s.contains("f");
});
System.out.println(b);
}
}
集合信息拆选
题目:
数组当中多条姓名+性别的信息如下:请通过Predicate接口的瓶装符合要求字符串筛选集合中,需要同时满足两个条件
1必须为女生
2姓名为4个字
分析:
1.有两个判断条件,所以需要使用两个Predicate接口,对条件进行判断
2.必须同时满足两个条件,所以可以使用and方法连接两个判断条件
案例:
public static ArrayList<String> filter(String[] arr, Predicate<String> predicate1,Predicate<String> predicate2){
ArrayList<String> list = new ArrayList<>();
for (String s : arr) {
boolean b = predicate1.and(predicate2).test(s);
if (b){
list.add(s);
}
}
return list;
}
public static void main(String[] args) {
String[] arr ={"大傻,女","大傻,女","大傻,女","大傻,女","大傻,女"};
ArrayList<String> list = filter(arr, (String s) -> {
return s.split(",")[1].equals("女");
}, (String s) -> {
return s.split(",")[0].length() == 4;
});
for (String s : list) {
System.out.println(s);
}
}
}