
(以下内容全部来自上述课程)
1. 不可变集合
- 含义:不能被修改的集合:长度和内容都不变
1.1 应用场景
- 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是一个很好的实践。
- 或者当集合对象被不可信的库调用时,不可变形式是安全的。
- 简单理解:不想让别人修改集合中的内容。
1.2 创建格式
细节:
- Set集合:键不能重复
- 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 中间方法
使用中间方法 对流水线上的数据进行操作
注意:
- 中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
- 修改Stream流中的数据,不会影响原来集合或数组中的数据
2.3.3 终结方法
使用终结方法 对流水线上的数据进行操作
toArray:
- 参数的作用:负责创建一个指定类型的数组
- 方法底层:会依次得到流里面的每一个数据,并把数据放到数组当中
- 返回值:是一个装着流里面所有数据的数组。
- 语句示例:String[] arr = list.stream.toArray(value -> new String[value]);
2.3.4 collect--List Set Map
- List:collect(Collectors.toList())
- Set:collect(Collectors.toSet())
- Map:collect(Collectors.toMap(键的规则,值的规则)) 键不能重复