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

【Java总结

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

【Java总结

Stream

 

阶段

不调用终止方法,中间的操作不会执行

IntStream 常见方法

forEach(System.out::println)

forEachOrdered(System.out::println)


元素的收集collect()

1收集为Set: Collectors.toSet()

2收集为List: Collectors.toList()

3收集到任意的Collection类型: Collectors.toCollection(LindedList::new) 也可以使用如linkedHashSet::new 和 PriorityQueue::new

4收集到Array: toArray(String[]::new)

 

5收集到Map: Collectors.toMap(Function.identity(), s-> (int) s.chars.distinct().count()) // key: t->t, value: 元素的不同的字母个数

6分组收集groupingBy

分组时,如果分组的字段中有值为null的时候,会抛Null Pointer Exception

解决方法: 使用Optional包裹一下 

Collectors.groupingBy(x->Optional.ofNullable(x));

 ---

Examples:

 

 

Example: group by + mapping to set

 

 

 groupby + reducing

多级分组

 

分区操作 Collectors.partitioningBy()  根据返回值是否为true,分为true列表,false列表

 

统计总数: Collectors.counting() 

拼接: Collectors.joining()

---

 

 

聚合操作

reduce()

 

 

方法引用

 


 

其他:

anyMatch()

sum/average/sumaryStatistics()

最大/最小/总和/平均值


比较器 Comparator

Optional min(Comparator comparator)

比数值: Comparator.comparing(Integer::intValue)

// 错误用法

Stream.max(Integer::max)

Stream.min(Integer::mix)

当使用Integer.max(v, k), 如果数据中全部都是正数,则返回值总是正数

Stream.max()中,是以返回值的正负和0值来判断数据大小的

 正确写法

 

 

比String: Comparator.comparing(String::valueOf)

对象类型Object: Comparator.comparing(User::getAge)

比日期: Comparrator.comparing(LocalDate::toEpochDay)

使用IntStream, LongStream, DoubleStream: IntSream.of(xx,xx).min()

sorted() 自然序排序

倒序: sorted(Comparator.reverseOrder())

sorted(Comparator.comparing(Student::getAge).reversed())


合并2个流: Stream.concat(xxStr1, xxStr2)

 ---

map ,

flatMap: 对流进行扁平化

 

 

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

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

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