网站首页 > 博客文章 正文
不可变集合
- 不可变集合就是不可以修改、添加、删除的集合
- 集合的数据在创建的时候就提供,且在整个生命周期都不可变
- 在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
猜你喜欢
- 2024-12-26 Java 8 Stream 处理大数据集:实战与优化
- 2024-12-26 面试官:Java8 lambda 表达式 forEach 如何提前终止?
- 2024-12-26 Javascript中,forEach和map到底有什么区别?
- 2024-12-26 Excel VBA之For Each遍历循环的应用
- 2024-12-26 为什么建议使用 for…of 循环而不是 foreach 循环呢
- 2024-12-26 前端开发map和foreach区别,map遍历方式用法介绍
- 2024-12-26 Rust语言从入门到精通系列 - 零基础掌握Stream流迭代器
- 2024-12-26 Map遍历的四种方法效率对比
- 2024-12-26 java集合类之java中集合类有哪些?如何分类?
- 2024-12-26 【一分钟学Java】之List
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)