IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> JDK1.8 -> 正文阅读

[开发工具]JDK1.8

JDK1.8笔记

stream

根据type分组
List<VO> vos
Map<String, List<VO>> map = vos.stream().collect(
	Collectors.groupingBy(item -> item.getType)
)
分区
System.out.println("通过年龄进行分区排序:");
Map<Boolean, List<User>> 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<VO> vos = list.stream().filter(item -> "A".equalse(item.getType())).collect(Collectors.toList());
filter中可以多条件,支持与或非操作运算符
普通的排序取值
List<User> list = list.stream().sorted((u1, u2) -> u1.getName().compareTo(u2.getName())).limit(3)
   .collect(Collectors.toList());
System.out.println("排序之后的数据:" + list);
优化排序取值
List<User> list = list.stream().limit(3).sorted((u1, u2) -> u1.getName().compareTo(u2.getName()))
   .collect(Collectors.toList());
System.out.println("优化排序之后的数据:" + list);

最大最小
List<String> 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<String> list = new ArrayList<String>();
list.add(lines);
List<String> 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<Integer> 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<String> list = Arrays.asList("zhangSan", "liSi", "wangWu");
System.out.println("转换之前的数据:" + list);
List<String> list2 = list.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println("转换之后的数据:" + list2); 

TODO

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:38:44  更:2022-04-24 09:39:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:39:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码