Stream流的toList方法踩坑

关于Stream.toList()方法使用小记 使用List.of()和Stream.toList()生成的List的内容是不能发生变化的。 阅读详情

在JDK16 Stream多了一个新方法"toList()" 用于将流收集为集合 我们来看一下写法

List<Integer> integerList = stringList.stream().map(Integer::valueOf).toList();

怎么样是不是和 .collect(Collectors.toList()) (JDK8)非常像?

List<Integer> integerList = stringList.stream().map(Integer::valueOf).collect(Collectors.toList());

是的 在我踩坑之前 我一直以为这俩写法没区别 只是平替方案 简化了写法而已

SonarLint插件也是如是告诉我的

于是我就一直用 toList()

直到某一天 代码报错了 : 不支持的操作

嗯 所以答案显而易见

toList()返回的对象是 List类型的 而List类型不支持set方法 所以会报错

如果我们继续使用.collect(Collectors.toList()) 就没有这样的问题 因为它返回的是ArrayList类型

1.5.Stream流-Stream流的终结方法中的收集方法collect超详解 收集方法collect可以收集流中的数据,大多放到单列集合和双列集合中(单列集合包括List集合、Set集合,双列集合包括Map集合)。注:双列集合Map的键不能重复,值可以重复,因此使用collect方法将数据收集到Map集合中一定要保证键不重复,如果键重复了打印Map集合等操作会报错。 阅读详情

相关推荐

java基础之Stream流

目录 1. 体验Stream流 2. Stream流的生成方式 3. Stream流的常见中间操作方法 4. Stream流中的常见终结操作方法 5. Stream流的练习 6. Stream流的收集操作 1. 体验Stream流 需求:按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以“张”开头的元素存储到一个新的集合 把“张”开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得到的集合 使用Stream流的方式完成过滤操作 list.s

毕业势必进大厂的博客 2649

Stream.toList()和Collectors.toList()的性能比较

昨天给大家介绍了Java 16中的Stream增强,可以直接通过toList()来转换成List。 主要涉及下面这几种转换方式: list.stream().toList(); list.stream().collect(Collectors.toList()); list.stream().collect(Collectors.toUnmodifiableList()); 然后,看到有网友评论问:Stream.toList()和Collectors.toList()的区别是什么?哪个性能好? 处理结果的

程序猿DD 2572

深入浅出Java8 Stream流:多实例详解

深入浅出多实例详解Stream流

白大锅的博客,毕设WangLoveBai_999 1万+

Java 8 – 将 Stream 转换为 List

一个Java 8 示例将向你展示怎样通过Collectors.toList把 一个 Stream 转换为一个 List 。 Java8Example1.java package com.mkyong.java8; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Strea

5万+

UsualToolCMS-验证码绕过漏洞复现

本文以UsualToolCMS为靶场,复现了验证码绕过漏洞

小小小屿屿屿的博客 919

LED背光驱动电路解析:从MP3394芯片到液晶屏灯管控制

本文深入解析了以MP3394芯片为核心的LED背光驱动电路工作原理。从升压电路的能量转换到多路LED的均流控制,详细阐述了其作为液晶屏背光“大脑”的关键作用,并提供了黑屏、闪屏、亮度不均等常见故障的实战检修思路与排查方法。

agile9scrum的博客 822

千万不要滥用Stream.toList(),被坑了!

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 3.5 分钟。来自:juejin.cn/post/7325717778597904420Stream toList()返回的是只读List原则上不可修改,collect(Collectors.toList())默认返回的是ArrayList,可以增删改查1. 背景在公司看到开发环境突然发现了UnsupportedOperatio...

良月柒 878

fdtd(时域有限差分)仿真

基础入门阶段采用 Step by step 的教学方式带着做具体的案例,在案例中学习 FDTD 应用的。的痛难点,将 FDTD 仿真引入实验当中,通过软件可视化处理有效直观的展示仿真的流程,与实验数。图像传感器,OLED 和液晶,表面计量,表面等离子体,石墨烯,太阳能电池,集成光子组件,超材。料,衍射光学和光子晶体。波,场极化,磁场,周期性结构,半球功率积分等设计解决方案,提供时域有限差分分析函数,时域。子光学传感器、热电子光探测器的光学特性研究、光学微腔宽带吸收器等多个方向的研究方法。

y2715163545的博客 5445

java8 stream to list_java8 streamList转换使用详解

一、java8 stream 操作List> maps 转 Map的两种方法第一种,实用于数据查询返回的是List> maps方法一、Map; resultMap = lists.stream().flatMap(map ->map.entrySet().stream()).collect(Collectors.toMap(e ->e.getKey(), e->e.g...

weixin_29597551的博客 1712

STM32 Boot程序实战:从启动流程到安全跳转机制解析

本文深入解析STM32 Boot程序的核心作用与安全跳转机制,涵盖启动流程、内存管理、中断向量表重定向及固件验证等关键环节。通过实战案例分享如何实现可靠的固件升级与故障回退策略,避免设备变砖风险,提升嵌入式系统稳定性。

pluto的博客 780

【知识分享】IBIS 建模指南 05

本文详细阐述了IBIS模型创建过程中的关键技术和数据规范要求。主要内容包括:1. 数据完整性检查要点,强调I-V和V-T数据必须覆盖所有工艺角且匹配;2. 数据限制处理方法,介绍100/1000点限制下的两种数据筛选算法;3. 特殊数据处理技术,包括内部终端电阻调整和V-T表时间窗口选择;4. 高级关键字应用,涵盖[ModelSelector]、[Sub model]、[DiffPin]等复杂功能实现方法;5. 预加重缓冲器等特殊结构的建模方案。

一只豌豆象的博客 1595

千万不要滥用Stream.toList(),有坑

应将相等的实例视为可互换的,不应将它们用于同步,否则可能会发生不可预知的行为。of和List.copyOf静态工厂方法为创建不可修改的列表提供了一种方便的方法。元素不能被添加、删除或替换。从Java16开始,Stream有了直接toList方法, java8时候常用的方法是。列表中元素的顺序与提供的参数或提供的数组中元素的顺序相同。但是,如果包含的元素本身是可变的,这可能会导致List的内容看起来发生变化。如果所有元素都是可序列化的,那么它们就是可序列化的。//List.of返回的也是不能修改的List。

jj1245_的博客 916

基于Django+Vue3的智能目标检测系统设计与实现,Vue3前台系统+Django后台管理系统开发,Web前后端分离,YOLOv8 Web目标检测,实现图片、视频和摄像头检测等功能,全网独发

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv8 与 Django + Vue3,构建一个Vue3前台系统+Django后台管理系统开发,便于用户进行目标检测的操作和展示,实现对图片、视频实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。支持更换自己模型、图片检测、实时视频检测、置信度调节和IoU参数调节。同时支持目标检测、实例分割、关键点检测等任务

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 5434

从Stream的 toList() 和 collect(Collectors.toList()) 方法看Java的不可变流

从Stream的 toList() 和 collect(Collectors.toList()) 方法看Java的不可变流

duke_ding2的博客 3842

模型预测控制 (MPC, Model Predictive Control) 算法详解及案例分析

模型预测控制是一种基于模型的控制策略,通过在线求解一个有限时域的优化问题,预测系统的未来行为,并根据预测结果调整控制输入,以实现系统的稳定性和性能优化。

闲人编程的博客 2936

qiankun(微前端) - 解决Element组件库部分样式失效,主应用和子应用分别使用element-ui和element-plus,前端微应用qiankun样式无效污染隔离子应用样式影响其他应用

乾坤qiankun,微前端,vue,qiankun主应用使用vue2+elementui子应用使用vue3+element plus样式失效,子应用样式影响其他应用样式问题,qiankun项目与子应用样式混乱问题,彻底搞定样式污染,前端微应用qiankun样式污染,组件样式部分失效怎么办,互相影响,qiankun子应用中使用element-plus样式失效问题,组件库样式污染混乱,子应用样式影响到主应用怎么办,微前端qiankun子应用样式影响其他应用样式,样式冲突,Vue+qiankun框架样式混乱问题的

✅ 精选推荐文章 8875

千万不要滥用Stream.toList(),有坑!

应将相等的实例视为可互换的,不应将它们用于同步,否则可能会发生不可预知的行为。工厂可以自由地创建新的实例或重用现有的实例。of和List.copyOf静态工厂方法为创建不可修改的列表提供了一种方便的方法。从Java16开始,Stream有了直接toList方法, java8时候常用的方法是。列表中元素的顺序与提供的参数或提供的数组中元素的顺序相同。但是,如果包含的元素本身是可变的,这可能会导致List的内容看起来发生变化。如果所有元素都是可序列化的,那么它们就是可序列化的。该接口是Java集合框架的成员。

mf97532的博客 446

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【Java8】Java 中的 Stream 流收集器

Java 中 Stream 流用来帮助处理集合,类似于数据库中的操作。在 Stream 接口中,有一个抽象方法collect,你会发现 collect 是一个归约操作(高级规约),就像reduce一样可以接受各种做法作为参数,将流中的元素累积成一个汇总结果。具体的做法可以通过Collector接口来定义。// collect和reduce都是Stream接口中的汇总方法,collect方法接收一个Collector(收集器)作为参数收集器(Collector。

swadian2008的博客 1988

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Stream流

stream流

qq_40004922的博客 1749

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【java17】java17新特性之Stream.toList()

UnmodifiableList是Java中的一个类,用于创建不可修改的列表。它实际上是通过Collections.unmodifiableList()方法创建的。一旦列表被创建为不可修改的,就无法对其进行添加、删除或修改元素的操作。这种列表对于保护数据不被意外修改或者共享数据而不希望被修改很有用。当你想要确保某个列表在传递给其他代码时不会被修改时,可以使用UnmodifiableList来包装你的列表。

morris 1344

Java基础:Stream流和方法引用

可以理解为一条流水线,可以对流水线上的数据进行各种操作(筛选、打印等)。结合了 Lambda表达式,简化集合、数组的操作① 先得到一个 Stream 流,将数据放上去② 利用 Stream 流中的中间方法进行各种操作。③ 利用 Stream 流中的终结方法进行各种操作。方法引用:把已经存在的方法拿过来用,当作函数式接口中重写的抽象方法的方法体。方法引用可以比 Lambda表达式 的写法更加简便。① 引用处必须是函数式接口。② 被引用方法必须已经存在(如果不存在,需要自定义方法或者使用第三方工具类)

xpy2428507302的博客 1347

Stream toList不能滥用以及与collect(Collectors.toList())的区别

Stream toList()返回的是只读List原则上不可修改,collect(Collectors.toList())默认返回的是ArrayList,可以增删改查

玩大神的优快云的博客 4445

【Java】Stream toList()和 collect(Collectors.toList())的区别、toList 有坑

Stream toList()返回的是只读List原则上不可修改,collect(Collectors.toList())默认返回的是ArrayList,可以增删改查在公司看到开发环境突然发现了UnsupportedOperationException 报错,想到了不是自己throw的应该就是操作collection不当。发现的确是同事使用了类似作为返回, 后继续使用了返回值做add操作,导致报错Stream toList()和 collect(Collectors.toList())的区别。

九师兄 77
下一篇: claude code 安装使用时其他问题解决
cnxiaokeer
博客等级 码龄3年 204粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值