1. 不可变集合
List.of()
Set.of()
Map.of()
- 特点:定义完成后不可以修改,或者添加,删除
- List直接用,Set的元素不可重复。
- Map的of方法,键是不能重复的,并且最多只能传10个键值对,共20个参数
- 如果要传递多个键值对的不可变Map,数量大于十个,用ofEntry
2. Stream流的思想和获取方法
作用: 结合Lambda表达式,简化集合、数组的操作
使用步骤:
- 先得到一条Stream流(流水线),并把数据放上去
利用Stream流中的API进行各种操作。
- 中间方法,方法调用完毕后,还可以调用其他方法
- 终结方法,最后一步,调用完毕后,不能调用其他方法
(1)单列集合
stream是Collection中的默认方法,可以直接使用
list.stream()
(2)双列集合
无法直接获取stream流
HashMap<String,Integer> hm = new HashMap<>();
//添加数据~~~
hm.entrySet.stream()
hm.keySet.stream()
(3)数组
通过Array获取strem流
int[] arr1= {1,2,3,4,5}
Arrays.stream(arr1)
(4)一堆零散数据
通过Stream接口中的静态方法
Stream.of(1,2,3,4,5,6)
int[] arr = {1,2,3,4,5}
Stream.of(arr) //这种写法是错误的
注意:
- Stream接口中静态方法of的细节
- 方法的形参是一个可变参数,可以传递一堆零散的数据,也可以传递数组
- 但是数组必须是引用数据类型的,如果传递基本数据类型,是会把整个数组当做一个元素,放到Stream当中。
3. Stream流中间方法
注意:
- 中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
- 修改Stream流中的数据,不会影响原来集合或者数组中的数据
(1)filter 过滤
- 参数为Predicate,函数式接口,可以写匿名内部类,也可以写lambda表达式。
- 返回值为true,表示当前数据留下
- 返回值为false,表示当前数据舍弃不要
(2)limit 获取前几个元素
list.stream.limit(3)
(3) skip 跳过前几个元素
list.stream.skip(3)
(4) distinct 元素去重 (一来hashCode和equals方法)
list.stream.distinct()
(5)concat 合并a和b两个流为1个流
Stream.concat(list1.stream(),list2.steram()).forEach(s->System.out.println(s));
(6) map 转换流中的数据类型
list.stream().map(s-> Integer.parseInt(s.split("-")[1])).forEach(s-> System.out.println(s));
4. String流终结方法
(1)forEach 遍历
(2)count() 统计
(3)toArray()放入数组
list.stream().toArray(value -> newString[value]);
(4)Collection 放入集合
放入map需要记一下。
list.stream().filter(s->"男".equals(s.split("-")[1]).collect(Collectors.toMap(s->s.split("-")[0],s->Integer.parseInt(s.split("-")[2])));
2 条评论
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
文化差异分析可再深化以避免误读。