• jdk1.8流处理Dmeo


         Stream<String> list = Stream.of("A","B","C","D");
    
            Optional<String> first = list.findFirst();
            System.out.println(first.get());
    
            List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
            //map数据流的映射处理
            List<Integer> squares = numbers.stream().map(n -> n * n).collect(Collectors.toList());
            System.out.println(squares);
    
            List<Integer> numbers1 = Arrays.asList(1, 2, 3);
            List<Integer> numbers2 = Arrays.asList(3, 4);
            //flatMap 处理多个流的逻辑最后转换为一个流
            List<int[]> pairs = numbers1.stream().flatMap(i -> numbers2.stream().map(j -> new int[]{i, j})).collect(Collectors.toList());
            System.out.println(pairs);
    
            //条件查询匹配数据 anyMatch, allMatch,noneMatch,findFirst和findAny
            Predicate<Integer> predicate = a->a.equals(1);
            boolean b = numbers1.stream().anyMatch(predicate);//只要有元素匹配则返回true
            System.out.println(b);
            boolean a = numbers1.stream().allMatch(predicate);//所有元素都匹配则返回true
            System.out.println(a);
            boolean c = numbers1.stream().noneMatch(predicate);//所有元素都不匹配则返回true
            System.out.println(c);
            Integer d = numbers1.stream().findFirst().orElse(0);//获取第一个元素
            System.out.println(d);
            Integer e = numbers1.stream().findAny().orElse(0);//获取任意一个元素
            System.out.println(e);
    
            //汇总Collectors.summarizingInt, summarizingLong, summarizingDouble 数据统计
            IntSummaryStatistics collect = numbers1.stream().collect(Collectors.summarizingInt(Integer::intValue));
            System.out.println(collect.getSum());
            System.out.println(collect.getAverage());
            System.out.println(collect.getMax());
            System.out.println(collect.getCount());
    
            //# Collectors.joining
            Stream<String> integerStream = Stream.of("1", "2", "3", "2", "4", "5");
            String s = integerStream.collect(Collectors.joining(","));
            System.out.println(s);
    
            //Collectors.groupingBy 分组
            Stream<String> groupingByStream = Stream.of("1", "2", "3", "2", "4", "5");
            Map<Boolean, List<String>> collect2 = groupingByStream.collect(Collectors.groupingBy(as -> Integer.parseInt(as) % 2 == 0));
            System.out.println(collect2);
            //分组: groupingBy + mapping
            Stream<String> groupingByStream2 = Stream.of("1", "2", "3", "2", "4", "5");
            Map<Boolean, Set<String>> collect4 = groupingByStream2.collect(Collectors.groupingBy(as -> Integer.parseInt(as) % 2 == 0,
                    Collectors.mapping(xx -> xx+ "demo", Collectors.toSet())));
            System.out.println(collect4);
            //多级分组: groupingBy + groupingBy
            Stream<String> groupingByStream1 = Stream.of("1", "2", "3", "2", "4", "5");
            Map<Boolean, Map<Boolean, List<String>>> collect3 = groupingByStream1.collect(Collectors.groupingBy(as -> Integer.parseInt(as) % 2 == 0,
                    Collectors.groupingBy(xx -> Integer.parseInt(xx) > 2)));
            System.out.println(collect3);
    
    
    
            Stream<String> stringStream = Stream.of("1", "2", "3", "2", "4", "5");
            ArrayList<Object> collect1 = stringStream.collect(ArrayList::new, List::add, List::addAll);
            System.out.println(JSON.toJSONString(collect1));
    
            //reduce 归约 T reduce(T identity, BinaryOperator<T> accumulator) identity初始化值
            Stream<String> stringStream1 = Stream.of("1", "2", "3", "2", "4", "5");
            String s1 = stringStream1.reduce("start", (x, y) -> x+","+y);
            System.out.println(s1);
    美梦成真,变为事实。
  • 相关阅读:
    nginx之location匹配优先级和安全问题
    nginx--->高并发优化
    高并发处理方案
    检查Linux服务器性能
    浅谈Nginx负载均衡和F5的区别
    大数据不仅仅是海量数据
    自己实现C++的string类
    hihoCoder题目之Magic Box
    vim入门之配色方案(colorscheme)设置
    新开通博客,很是高兴
  • 原文地址:https://www.cnblogs.com/x-ll123/p/15176973.html
Copyright © 2020-2023  润新知