• Stream流的基本使用


    List<User> userList = new ArrayList<>();
            userList.add(new User("a", "1", "1", "a"));
            userList.add(new User("b", "2", "2", "b"));
            userList.add(new User("c", "3", "3", "c"));
            userList.add(new User("d", "4", "4", "d"));
    
            
            //所有值
            userList.forEach(f -> System.out.println(f));
            //name为a的值
            userList.stream().filter(p -> "a".equals(p.getName())).forEach(System.out::println);
            ///name为a 并且为b 的值转为list
            List<User> collect1 = userList.stream().filter(p -> "a".equals(p.getName())).filter(p -> "b".equals(p.getName())).collect(Collectors.toList());
            //name为a 并且为b 的值
            userList.stream().filter(p -> "a".equals(p.getName()) && "b".equals(p.getName())).forEach(a -> System.out.println(a));
            //name为a 或者为b 的name值
            userList.stream().filter(m -> "a".equals(m.getName()) || "b".equals(m.getName())).map(User::getName).forEach(System.out::println);
    
            //将集合中的name转为set
            Set<String> collectSet = userList.stream().map(User::getName).collect(Collectors.toSet());
            //a c d
            collectSet.forEach(System.out::println);
    
            //将集合中的name为key,value为同一name的对象集合
            Map<String, List<User>> collect = collectSet.stream().collect(Collectors.toMap(String::new, e -> userList.stream()
                    .filter(ele -> ele.getName().equals(e)).collect(Collectors.toList())));
            //a-[a,a]    b-[b]
            collect.forEach((k, v) -> System.out.println(k + "--" + v));
    
             
    
            Stream.iterate(10, x->x+2).limit(10).forEach(System.out::println);
            Stream.generate(Math::random).limit(10).forEach(System.out::println);
            Stream.generate(()->new Random().nextInt(10)).limit(10).forEach(System.out::println);
    
    
            List<Integer> list = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
            list.stream().filter(i->i % 2==0).distinct().forEach(System.out::println);
    
            list.stream().limit(3).forEach(System.out::println);
            System.out.println("---------------------------");
            list.stream().skip(3).forEach(System.out::println);
  • 相关阅读:
    js对象,数组,字符串的操作
    js 类型之间的相互转化
    Spark常见问题汇总
    Spark RDD的默认分区数:(spark 2.1.0)
    手动合并hadoop namenode editlog
    Yarn参数优化(Fair Scheduler版本)
    linux中在某个目录下多个文件中搜索关键字
    JDK中jps、jinfo、jstat、jstack、jmap、jconsole等命令简介
    Elasticsearch 为何要在 7.X版本中 去除type 的概念
    Linux 查看内存使用情况
  • 原文地址:https://www.cnblogs.com/64Byte/p/15891291.html
Copyright © 2020-2023  润新知