Java后端开发day38--不可变集合&Stream流

(以下内容全部来自上述课程)

1. 不可变集合

  • 含义:不能被修改的集合:长度和内容都不变

1.1 应用场景

  • 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是一个很好的实践。
  • 或者当集合对象被不可信的库调用时,不可变形式是安全的。
  • 简单理解:不想让别人修改集合中的内容。

1.2 创建格式


细节:

  1. Set集合:键不能重复
  2. Map集合:键不能重复
    Map里面的of方法,参数是有上限的,最多只能传递20个参数,10个键值对
    如果我们要传递多个键值对对象,数量大于10个,在Map接口中还有一个方法:ofEntries

2.Stream流

2.1 Stream流的思想

过滤操作-->过滤操作-->输出操作

2.2 作用

结合Lambda表达式,简化集合、数组的操作

2.3 使用步骤

2.3.1 流水线

先得到一条Stream流(流水线),并把数据放上去

Stream接口中静态方法of的细节:

  • 方法的形参是一个可变参数,可以传递一堆零散的数据,也可以传递数组
  • 但是数组必须是引用数据类型的,如果传递基本数据类型,是会把整个数组当作一个元素,放到Stream当中。

2.3.2 中间方法

使用中间方法 对流水线上的数据进行操作

注意:

  1. 中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
  2. 修改Stream流中的数据,不会影响原来集合或数组中的数据

2.3.3 终结方法

使用终结方法 对流水线上的数据进行操作

toArray:

  • 参数的作用:负责创建一个指定类型的数组
  • 方法底层:会依次得到流里面的每一个数据,并把数据放到数组当中
  • 返回值:是一个装着流里面所有数据的数组。
  • 语句示例:String\[\] arr = list.stream.toArray(value -> new Stringvalue);

2.3.4 collect--List Set Map

  • List:collect(Collectors.toList())
  • Set:collect(Collectors.toSet())
  • Map:collect(Collectors.toMap(键的规则,值的规则)) 键不能重复
相关推荐
圆山猫12 分钟前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
微学AI44 分钟前
一根针指向所有方向:挂谷猜想对 LLM Agent 技能-记忆架构的启示
开发语言·人工智能·架构·挂谷猜想
城管不管1 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨1 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡1 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖2 小时前
Java深入解析篇九之NIO详解
java·网络·nio
韭菜炒鸡肝天2 小时前
VTK开发笔记(一):VTK介绍,Qt..+VSx+VTK.编译
开发语言·笔记·qt
The Chosen One9852 小时前
高进度算法模板速记(待完善)
java·前端·算法
Aaron - Wistron3 小时前
Web API C# (Furion版)带 单元测试
开发语言·后端·c#
Dxy12393102164 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python