Java8之Predicate, Consumer,Function基础使用
代码如下:
Listlist = new ArrayList<>(); list.add("c"); list.add("a"); list.add("b"); //Predicate使用, 数据流条件过滤 Predicate predicate = (s)-> s.equals("a"); Predicate predicateAnd = (s)-> s.equals("b"); Predicate predicateOr = (s)-> s.equals("c"); List collect = list.stream().filter(predicate.and(predicateAnd).or(predicateOr)).collect(Collectors.toList()); System.out.println(collect); System.out.println("------------------------"); //Consumer使用, 数据流业务操作不需要返回参数 Consumer consumer = s -> { System.out.println(s); }; list.stream().forEach(consumer); System.out.println("------------------------"); list.stream().parallel().forEach(consumer); System.out.println("------------------------"); list.stream().parallel().forEachOrdered(consumer); //Function使用, 数据流操作类型转换 Function functionCompose = (s)->{ if(s.equals("B")){ return 0; } return 1; }; Function function = (i)->{ if(i.equals(0)){ return 1.0002; } return 0.0001; }; //先计算functionCompose再计算function (andThen 与 compose相反) Function compose = function.compose(functionCompose); List collect1 = Stream.of("A", "B", "C", "D").map(compose).collect(Collectors.toList()); System.out.println(collect1);