什么是不可变集合?
- 不可变集合,就是不可被修改的集合。
- 集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变。否则报错。
为什么要创建不可变集合?
- 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。
- 或者当集合对象被不可信的库调用时,不可变形式是安全的。
如何创建不可变集合?
- 在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集合对象 |
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CollectionDemo {
public static void main(String[] args) {
//1、不可变的list集合
List<Double> lists = List.of(569.5,700.5,523.0,570.5);
// lists.add(666.6);//UnsupportedOperationException
//2、不可变的set集合
// Set<String> names = Set.of("迪丽热巴","马儿扎哈","迪丽热巴");//IllegalArgumentException: duplicate element: 迪丽热巴
Set<String> names = Set.of("迪丽热巴","马儿扎哈");
// names.add("三少爷");//UnsupportedOperationException
System.out.println(names);
//3、不可变的Map集合
Map<String ,Integer> maps = Map.of("huawei",2,"Java开发",1,"手表",3);
// maps.put("衣服",2);//UnsupportedOperationException
System.out.println(maps);
}
}