栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDK1.8

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDK1.8

JDK1.8笔记
  • stream

stream
根据type分组
List vos
Map> map = vos.stream().collect(
	Collectors.groupingBy(item -> item.getType)
)
分区
System.out.println("通过年龄进行分区排序:");
Map> children = Stream.generate(new UserSupplier3()).limit(5)
   .collect(Collectors.partitioningBy(p -> p.getId() < 18));

System.out.println("children: " + children.get(true));
System.out.println("person: " + children.get(false));
获取某字段求和
double sum = list.stream().mapToDouble(VO::getNum).sum();
mapToDouble() 可以根据需要替换相应的方法
根据具体的值匹配分类
List vos = list.stream().filter(item -> "A".equalse(item.getType())).collect(Collectors.toList());
filter中可以多条件,支持与或非操作运算符
普通的排序取值
List list = list.stream().sorted((u1, u2) -> u1.getName().compareTo(u2.getName())).limit(3)
   .collect(Collectors.toList());
System.out.println("排序之后的数据:" + list);
优化排序取值
List list = list.stream().limit(3).sorted((u1, u2) -> u1.getName().compareTo(u2.getName()))
   .collect(Collectors.toList());
System.out.println("优化排序之后的数据:" + list);

最大最小
List list = Arrays.asList("zhangsan","lisi","wangwu","xuwujing");
int maxLines = list.stream().mapToInt(String::length).max().getAsInt(); int minLines = list.stream().mapToInt(String::length).min().getAsInt();
System.out.println("最长长度:" + maxLines+",最短长度:"+minLines);
去重
String lines = "good good study day day up";
List list = new ArrayList();
list.add(lines);
List words = list.stream().flatMap(line -> Stream.of(line.split(" "))).filter(word -> word.length() > 0)
   .map(String::toLowerCase).distinct().sorted().collect(Collectors.toList());
System.out.println("去重复之后:" + words);
是否匹配
--allMatch:Stream 中全部元素符合则返回 true ;
--anyMatch:Stream 中只要有一个元素符合则返回 true;
--noneMatch:Stream 中没有一个元素符合则返回 true。

boolean all = lists.stream().allMatch(u -> u.getId() > 2);
System.out.println("是否都大于2:" + all);
boolean any = lists.stream().anyMatch(u -> u.getId() > 2);
System.out.println("是否有一个大于2:" + any);
boolean none = lists.stream().noneMatch(u -> u.getId() > 2);
System.out.println("是否没有一个大于2的:" + none); 
字符串拼接
String concat = Stream.of("A", "B", "C", "D").reduce("", String::concat);
System.out.println("字符串:" + concat);
最大最小平均数
List numbers = Arrays.asList(2, 6, 7, 4, 12);
IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();

System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());
转换大写
List list = Arrays.asList("zhangSan", "liSi", "wangWu");
System.out.println("转换之前的数据:" + list);
List list2 = list.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println("转换之后的数据:" + list2); 

TODO

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/826135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号