map用final之后 还能增减key吗
时间: 2024-03-12 07:48:36 浏览: 35
使用 `final` 关键字修饰的 `Map` 变量,表示该变量引用的对象地址不能改变,但是对象本身的内容是可以修改的,因此仍然可以增加、删除键值对。例如:
```java
final Map<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
System.out.println(map); // 输出 {key1=1, key2=2}
map.put("key3", 3);
System.out.println(map); // 输出 {key1=1, key2=2, key3=3}
map.remove("key2");
System.out.println(map); // 输出 {key1=1, key3=3}
```
需要注意的是,如果 `final` 关键字修饰的是 `Map` 对象本身,则该对象不能被替换成另一个 `Map` 对象,但是仍然可以修改该对象中的键值对。例如:
```java
final Map<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
System.out.println(map); // 输出 {key1=1, key2=2}
// 以下代码会编译报错,因为 map 对象本身不能被替换成另一个 Map 对象
// map = new HashMap<>();
map.put("key3", 3);
System.out.println(map); // 输出 {key1=1, key2=2, key3=3}
map.remove("key2");
System.out.println(map); // 输出 {key1=1, key3=3}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)