//1.Consumer<T>:消费型接口:有参无返 @Test public void test1(){ ConsumerAge(9,(x) -> { if(x%2==0){ System.out.println(x+"是偶数"); }else{ System.out.println(x+"是奇数"); } }); } //判断指定的数字是否为偶数 public void ConsumerAge(int num, Consumer<Integer> con){ con.accept(num); } //2.Supplier<T>:供给型:无参有返 @Test public void test2(){ List<Integer> list=SupplierEgs(() -> {return new Random().nextInt(33)+1;}); for(Integer it:list){ System.out.println(it+"\t"); } } //需求:随机产生一组(6个)1-33的红色球存入集合并返回 public List<Integer> SupplierEgs(Supplier<Integer> sup){ List<Integer> list=new ArrayList<Integer>(); for(int i=0;i<6;i++){ list.add(sup.get()); } return list; } //3.Function<T,R>:函数式接口,有参有返 @Test public void test3(){ List<Integer> oldlist= Arrays.asList(21,34,22,43,33,21,34,55,5,3,44); List<Integer> newlist=functionEgs(oldlist,(x) -> { List<Integer> retlist=new ArrayList<Integer>(); for(Integer i:x){ if(!retlist.contains(i)){ retlist.add(i); } } return retlist; }); for(Integer iter:newlist){ System.out.println(iter+"\t"); } } //需求:去掉1list集合中重复的元素,返回新的集合 public List<Integer> functionEgs(List<Integer> li, Function<List<Integer>,List<Integer>> fms){ return fms.apply(li); } //4.Predicate:boolean @Test public void test4(){ List<String> str=Arrays.asList("test","lucy","lisi","zs","gansu","lanzhou","tianshui"); List<String> newStr=PredicateEgs(str,(x) -> x.contains("t")); for(String s:newStr){ System.out.println(s); } } //需求:去掉字符串集合中包含有指定内容的字符元素 public List<String> PredicateEgs(List<String> str,Predicate<String> pr){ List<String> list=new ArrayList<String>(); for(String s:str){ if(pr.test(s)){ list.add(s); } } return list; }
java内置的4大核心函数式接口
最新推荐文章于 2022-06-01 17:32:45 发布