Java8 新特性 Steam() 中间有状态操作
中间有状态操作
中间操作,就是把数据处理成自己想要的类型,并且有状态操作,是在所有的数据基础上进行操作的。比如dictinct(去重),sorted(排序)....
所有的有状态操作:
去重 distinct
跳过 skip
截断 limit
排序 sorted
去重 distinct
//找出所有的对象的类型
@Test
public void test1() {
list.stream()
//找出所有的对象的类型
.map(Sku::getSkuCategory)
//然后去重
.distinct()
.forEach(System.out::println);
}
/*
ELECTRONICS
CLOTHING
SPORTS
BOOKS
*/
跳过 skip
/**
* 跳过 skip
*/
@Test
public void test2() {
//没有过滤
list.stream()
.forEach(item -> System.out.println(
JSON.toJSONString(
item.getSkuId(), true)));
long count = list.stream().count();
System.out.println("总共有" + count + "个对象");
//跳过 skip
list.stream()
//跳过前7个
.skip(7)
.forEach(item -> System.out.println(
JSON.toJSONString(
item.getSkuId(), true)));
/**
* 输出的结果:
* 100001
* 100002
* 100003
* 100004
* 100005
* 100006
* 100007
* 100008
* 100009
* 总共有9个对象
* 100007
* 100008
* 从1开始,到第7个开始获取
*/
}
截断 limit
/**
* 截断 limit
*/
@Test
public void limitTest() {
list.stream()
//截断
.limit(1)
//输出
.forEach(item ->
System.out.println(
JSON.toJSONString(item,true)));
/**
* 只截断了第一个
* 剩下来的全部都丢弃
* "skuCategory":"ELECTRONICS",
* "skuId":100001,
* "skuName":"无人机",
* "skuPrice":4999.0,
* "totalNum":1,
* "totalPrice":4999.0
*
*/
}
排序 sorted
/**
* sorted 排序
*/
@Test
public void sortedTest() {
List<Double> collect = list.stream()
//排序
.sorted(Comparator.comparing(Sku::getSkuPrice))
//映射成只有价格
.map(Sku::getSkuPrice)
//把经果收集成价格列表
.collect(Collectors.toList());
//循环输出出来
collect.forEach(System.out::println);
/**
* //价格升序排列,倒序排列:reversed 在 comparing 加上去
* 78.2
* 79.8
* 85.5
* 149.0
* 409.0
* 528.0
* 2299.0
* 2699.0
* 4999.0
*/
关注公众号,随时获取最新资讯
细节决定成败!
个人愚见,如有不对,恳请斧正!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」