java lambda例子
来源:互联网 发布:centos 网络流量监控 编辑:程序博客网 时间:2024/06/04 17:47
List<Person> list=new LinkedList<>();Person p1=new Person("zhangsan", 1);Person p2=new Person("lisi",3);Person p3=new Person("wangwu",2);Person p4=new Person("wangwu",4);list.add(p1);list.add(p2);list.add(p3);list.add(p4);//用新的stream通过转化后代替旧的 zhangsan,lisi,wangwu,wangwu,list.stream().flatMap(o->Stream.of(o.getName()+",")).forEach(System.out::print);System.out.println();//过滤Id>1的转成list [Person [name=lisi, id=3, addr=null], Person [name=wangwu, id=2, addr=null], Person [name=wangwu, id=4, addr=null]]List<Person> l=list.stream().filter(o->o.getId()>1).collect(Collectors.toList());System.out.println(l);//提取 name 字段转list [zhangsan, lisi, wangwu, wangwu]List<String> l1=list.stream().map(o->o.getName()).collect(Collectors.toList());System.out.println(l1);//提取id字段 算总和 9int sum = list.stream().filter(o->o.getId()>1).mapToInt(o->o.getId()).sum();System.out.println(sum);//提取id和那么转map {1=zhangsan, 2=wangwu, 3=lisi, 4=wangwu}Map<Integer, String> collect = list.stream().collect(Collectors.toMap(o->o.getId(), o->o.getName()));System.out.println(collect);//提取name字段转TreeSet [lisi, wangwu, zhangsan]TreeSet<String> collect3 = list.stream().map(Person::getName).collect(Collectors.toCollection(TreeSet::new));System.out.println(collect3);//按name分组 {lisi=[Person [name=lisi, id=3, addr=null]], zhangsan=[Person [name=zhangsan, id=1, addr=null]], wangwu=[Person [name=wangwu, id=2, addr=null], Person [name=wangwu, id=4, addr=null]]}Map<String, List<Person>> collect2 = list.stream().collect(Collectors.groupingBy(Person::getName));System.out.println(collect2);//按 , 号拼接name字段 zhangsan,lisi,wangwu,wangwuString collect4 = list.stream().map(Person::getName).collect(Collectors.joining(","));System.out.println(collect4);//按 , 号 ,()为头尾, 拼接name字段 (zhangsan,lisi,wangwu,wangwu)String collect5 = list.parallelStream().map(Person::getName).collect(Collectors.joining(",","(",")"));System.out.println(collect5);//按name分组,算id总和 {lisi=3, zhangsan=1, wangwu=6}Map<String, Integer> collect7 = list.stream().collect(Collectors.groupingBy(Person::getName,Collectors.summingInt(Person::getId)));System.out.println(collect7);//按id>1 分成key为true和false的两个map {false=[Person [name=zhangsan, id=1, addr=null]], true=[Person [name=lisi, id=3, addr=null], Person [name=wangwu, id=2, addr=null], Person [name=wangwu, id=4, addr=null]]}Map<Boolean, List<Person>> collect8 = list.stream().collect(Collectors.partitioningBy(person -> person.getId()>1));System.out.println(collect8);//按name字段,算每个那么字段的个数 {lisi=1, zhangsan=1, wangwu=2}Map<String, Long> collect10 = list.stream().collect(Collectors.groupingByConcurrent(Person::getName,Collectors.counting()));System.out.println(collect10);//按id字段 作为比较 Person [name=zhangsan, id=1, addr=null]Person [name=wangwu, id=2, addr=null]Person [name=lisi, id=3, addr=null]Person [name=wangwu, id=4, addr=null]list.sort(Comparator.comparing(p->p.getId()));list.stream().forEach(System.out::print);System.out.println();//按id比较的另一种写法 Person [name=zhangsan, id=1, addr=null]Person [name=wangwu, id=2, addr=null]Person [name=lisi, id=3, addr=null]Person [name=wangwu, id=4, addr=null]list.sort((o1,o2)->o1.getId()-o2.getId());list.forEach(System.out::print);System.out.println();//按name比较,相等时使用id字段,反序排列 Person [name=lisi, id=3, addr=null]Person [name=wangwu, id=2, addr=null]Person [name=wangwu, id=4, addr=null]Person [name=zhangsan, id=1, addr=null]list.sort(Comparator.comparing(p->((Person) p).getName()).thenComparing(p->((Person) p).getId()).reversed());list.stream().forEach(System.out::print);System.out.println();//按自定义实现了Comparator接口的比较器排序list.sort(Comparator.comparing(p->p.getName(),new StringComparator()));list.forEach(System.out::print);
0 0
- java lambda stream 例子
- Java Lambda表达式例子
- java lambda例子
- Java 8 Lambda : Comparator 例子
- java 匿名内部类 lambda 在多线程中的使用例子
- Java之Lambda表达式和Stream类简单例子
- Lambda表达式的例子
- Lambda基础例子
- Java8 Lambda表达式例子
- Lambda表达式小例子
- java8 Lambda 十个例子
- Java-Lambda
- Java Lambda
- jdk8 特性例子- lambda expressions
- Java 回调函数(传统方法和lambda方法)-一个例子秒懂
- Java Tutorials Lambda expressions,Java Lambda表达式
- Java Lambda表达式(Java Lambda Expression)
- Java Lambda(6)(Lambda完结)
- 黑马程序员就业班第二天的总结以及自己的看法
- Scrapy研究探索(五)——自动多网页爬取(抓取某人博客所有文章)
- 替换空格
- PHP 单例模式实现
- 世博尼泊尔馆特展图片
- java lambda例子
- Netty学习笔记
- phpstorm version 2016.2 License Server激活
- 《论Android的发展方向(个人见解)》
- springmvc+maven+netty-socketio服务端构建实时通信
- 一次完整的HTTP事务全过程详解
- 学习python的第六天
- 阶段性总结
- GTK+-3.0编程 (三) 让这个按钮丰富一点,并给窗口加上图标