网站首页 > 精选文章 正文
不可变集合
- 不可变集合就是不可以修改、添加、删除的集合
- 集合的数据在创建的时候就提供,且在整个生命周期都不可变
- 在List、Set、Map接口中,都存在of方法,可以创建一个不可变集合
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CollectionDemo1 {
public static void main(String[] args) {
List<Double> l = List.of(100.0, 300.0, 248.6, 12.3);
System.out.println(l);
Set<String> s = Set.of("java", "php", "python");
System.out.println(s);
Map<String, Integer> m = Map.of("张三", 10, "李四", 20);
System.out.println(m);
}
}
Stream流
- 用于简化集合和数组操作的API,结合Lambada表达式
- 流中无法直接修改集合、数组中的数据
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionDemo2 {
public static void main(String[] args) {
List<String> l = new ArrayList<>();
Collections.addAll(l, "张三", "李四", "王五", "张二");
System.out.println(l);
l.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s));
// 收集Stream到集合或数组中,便于其他使用
Stream<String> sl = l.stream().filter(s -> s.startsWith("张"));
List<String> zhangList = sl.collect(Collectors.toList());
System.out.println(zhangList);
}
}
- Stream流的三类方法
① 获取Stream流,创建一个流并把数据放入其中的,准备进行操作
② 中间方法,流上的操作,可以进行链式操作
③ 终结方法,一个流只有一个终结方法(forEach、count),是流上的最后一个操作方法,调用完成后就无法继续再使用
import java.util.*;
import java.util.stream.Stream;
public class CollectionDemo3 {
public static void main(String[] args) {
// Collection集合获取流
Collection<String> list = new ArrayList<>();
Stream<String> lStream = list.stream();
// Map集合获取流
Map<String, Integer> maps = new HashMap<>();
// 键流
Stream<String> keyStream = maps.keySet().stream();
// 值流
Stream<Integer> valStream = maps.values().stream();
// 键值对流
Stream<Map.Entry<String, Integer>> keyAndValStream = maps.entrySet().stream();
// 数组获取流
String[] names = {};
// 方式1
Stream<String> nameStream = Arrays.stream(names);
// 方式2
Stream<String> nameStream1 = Stream.of(names);
}
}
- Stream流常用API
- 上一篇: 日本便利店不得不吃的甜点!
- 下一篇: 初级开发人员告诉我:OO 设计模式太复杂而且没用
猜你喜欢
- 2025-05-27 Reaper控制器栏的魔法——JS系列脚本介绍
- 2025-05-27 [三菱PLC] 三菱ST语言:第6课 FB、标签的用法
- 2025-05-27 全网最全95道MongoDB面试题1万字详细解析
- 2025-05-27 【快报】*CTF 2019国际赛安胜再获佳绩,WriteUp看这里!
- 2025-05-27 (一)熟练HTML5+CSS3,每天复习一遍
- 2025-05-27 初级开发人员告诉我:OO 设计模式太复杂而且没用
- 2025-05-27 日本便利店不得不吃的甜点!
- 2025-05-27 跨语言的服务调用框架Apache Thrift
- 2025-05-27 「性能优化」 JVM调优-参数篇
- 2025-05-27 Qt开源类库集合
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)