Java中的不可变集合介绍
不可变集合
什么是不可变集合?
不可变集合,就是不可被修改的集合。
集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变。否则报错。
为什么创建不可变集合?
如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。
或者当集合对象被不可信的库调用时,不可变形式是安全的。
如何创建不可变集合?
在List、Set、Map接口中,都存在of方法,可以创建一个不可变的集合。
方法名称 | 说明 |
---|---|
static <E> List<E> of(E…elements) | 创建一个具有指定元素的List集合对象 |
static <E> Set<E> of(E…elements) | 创建一个具有指定元素的Set集合对象 |
static <K , V> Map<K,V> of(E…elements) | 创建一个具有指定元素的Map集合对象 |
public static void main(String[] args) {// 创建List不可变集合List<Integer> nums1 = List.of(10, 40, 80, 100);System.out.println(nums1); // [10, 40, 80, 100]// 创建Set不可变集合, Set不可变集合强制要求不能输入相同的元素Set<Double> nums2 = Set.of(10.7, 20.6, 40.7, 90.0);System.out.println(nums2);// 创建Map不可变集合Map<String, Integer> info = Map.of("Java", 20, "Vue", 30, "React", 40);System.out.println(info); // [10, 40, 80, 100]
}
注意: 不可变集合不能添加,不能删除,不能修改。
小结:
不可变集合的特点?
定义完成后不可以修改,或者添加、删除
如何创建不可变集合?
List、Set、Map接口中,都存在of方法可以创建不可变集合。
Java中的不可变集合介绍相关推荐
- Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等...
http://blog.51cto.com/13919357/2339446 Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容 ...
- Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等
Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 公平锁 / 非公平锁 可重入锁 / 不可重入锁 独享锁 / 共享锁 互 ...
- setyear java_如何在Java中创建不可变类
如果对象在构造后无法更改,则该对象是不可变的.不可变对象不会以任何方式暴露其他对象来修改其状态; 对象的字段仅在构造函数内初始化一次,并且永远不会再次更改. 在本文中,我们将定义在Java中创建不可变 ...
- java创建一个不可变对象_如何在Java中创建不可变类?
java创建一个不可变对象 Today we will learn about the immutable class in Java. What are immutable classes? The ...
- Java中的模块(Module)入门介绍
Java中的模块(Module)入门介绍 在Java 9版本中Java 语言引入了一个非常重要的概念:模块(module).module引入了Java代码分组的另一个级别.每个module都包含许多子 ...
- NO.7 Monitor(管程)是什么意思?Java中Monitor(管程)的介绍
目录 一.Monitor的概念 二.Monitor 基本元素 三.Java 语言对 monitor 的支持 临界区的圈定 monitor object synchronized 关键字 四.管程:并发 ...
- Java中的数据结构之集合
文章目录 前言 一.集合的基本框架 二.Collection 1.常用方法 2.Iterator 3.foreach循环 4.List 5.Queue 6.Set 三.Map 1.Map实现类 2.M ...
- 关于Java中final关键字的详细介绍
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- 【Java】如何理解Java中的双列集合Map?
1 Map<K,V>接口 1.1 特点 双列集合一个元素包含俩值 Key不可以重复,Value可以重复 Key和Value一一对应 Key和Value可以时任意类型 1.2 常用方法 pu ...
最新文章
- tensorflow问题
- VTK:Filtering之ExtractVisibleCells
- HDU - 1757 A Simple Math Problem(矩阵快速幂,水题)
- C#二维数组的定义和初始化
- PyFoam来实时输出残差
- mapreduce原理_Hbase Bulkload 原理面试必备
- CCF	2017-3-2 学生排队
- linux telnet 127.0.0.1 不通,Linux 出现telnet: 127.0.0.1: Connection refused错误解决办法
- SQL 对大小写不敏感!
- 28. git 常用命令
- python数字时钟日期_Python数值日期时间笔记
- 【MySQL学习笔记】MySQL库与表
- 信息论基础 thomas 2nd ed
- bat脚本实现微信多开
- 灰度思维,黑白决策(上)
- python免费全套教程400集视频-如何入门 Python 爬虫?400集免费教程视频带你从0-1全面掌握...
- python docx 提取图片_python 解析docx文档的方法,以及提取插入的文本对象和图片...
- Android高级工程师面试实战,赶快收藏备战金九银十!
- 毕业季——在校生讲述
- Spring控制事务回滚
热门文章
- 神经网络 深度神经网络,图神经网络和神经网络
- python特征选择relieff图像特征优选_基于Relief特征选择算法的研究与应用
- 梅尔加尼服务器状态,梅尔加尼服务器第二界闪光平原暴力竞走大赛
- python校正人脸_Python 进行人脸校正
- 解决Vue运行报js内存溢出问题
- Python使用Treeview制作表格(二)
- Android手机通过USB数据线共享Linux电脑网络
- (3)聚类算法之DBSCAN算法
- 国外不错的网站(类似知乎)
- grafana graphite statsd搭建安装部署 实时监控_亲测成功