banzhihuanyu 2019-12-20
// Java8函数式编程示例—(Predicate、Stream、Optional) https://blog.csdn.net/weixin_41950473/article/details/84930562 // Set<Integer> nums = new HashSet<>(); // for (int i = 0; i < 100; i++) { // Integer num = (int) (100 * Math.random()); // nums.add(num); // System.out.println(num.intValue()); // } // // // predicate语义 // Predicate<Integer> p1 = x -> x.intValue() > 40 && x.intValue() < 50; // Predicate<Integer> p2 = x -> x.intValue() > 30 && x.intValue() < 80; // // List<Integer> res = nums.stream().filter(p1.and(p2)).collect(Collectors.toList());// 流式操作 // // Collections.sort(res, Comparator.comparing(Integer::intValue));// 排序,Comparator List<Integer> res = Arrays.asList(6,9,12); // Optional List<Integer> value = Optional.ofNullable(res) .map((param) -> { return param.stream() .map(x -> x / 3) .collect(Collectors.toList()); }) .orElseThrow(IllegalArgumentException::new); System.out.println("--->"+value);