不可变集合详解

(1)创建不可变集合的应用场景

1.如果某个数据不能被修改,可把它防御性地拷贝到不可变集合中。

2.当集合对象被不可信的库调用时,不可变形式是安全的。

(2)在List、Set、Map接口中,都存在静态的of方法,可以获取一个不可变的集合。

注意:这个集合不能添加、不能删除、不能修改。

(3)Map里面的of方法,参数是有上限的,最多只能传递20个参数,即最多只能存10个键值对。如果要传递多个键值对对象,数量大于10,可以用以下方法:

1.创建Map一个普通的Map集合,如HashMap

2.利用上面的数据来获取一个不可变的集合hm

法一:

//获取到所有的键值对对象(Entry对象)

Set<Map.Entry<String,String>> entries = hm.entrySet();

//把entries变成一个数组

Map.Entry[ ] arr1 = new Map.Entry[0];

//toArry方法在底层会比较集合的长度跟数组的长度两者的大小

//如果集合的长度>数组的长度:数据在数组中放不下,此时会根据实际数据的个数,重新创建数组

//如果集合的长度<=数组的长度:数据在数组中放的下,此时不会创建新的数组,而是直接用

(4)List:直接用

(5)Set:元素不能重复

 

posted @ 2022-10-30 20:01  Linqylin  阅读(150)  评论(0编辑  收藏  举报