常用的函式接口_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);
}
}

}

 

 

  

posted @ 2022-07-23 16:09  一位程序袁  阅读(31)  评论(0编辑  收藏  举报