import java.util.*;
public class Hash_Map_Demo {
public static void main(String[] args) {
Map<String, String>
toEmails = Collections
.singletonMap("key", "Value");
Map<String, String> userEmails = new HashMap<>();
userEmails.put("abc@gmail.com", "abc");
toEmails.putAll(userEmails);
}
}
当我尝试运行上面的代码时,我遇到了以下异常
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractMap.put(AbstractMap.java:209)
at java.util.AbstractMap.putAll(AbstractMap.java:281)
at Hash_Map_Demo.main(Hash_Map_Demo.java:13)
我明白,在这里我试图添加一个散列表到集合。singletonmap但他们不一样,后面发生了什么。
3条答案
按热度按时间wgmfuz8q1#
Collections.singletonMap()
返回一个不可变的map。使用其他Map
实现,例如:ukdjmx9f2#
从
Collections.singletonMap()
返回的map是不可变的,因此在创建后不能修改它:xzv2uavs3#
Collections.singletonMap()
返回SingletonMap
。这是Map
的实现,但不支持put
方法。当调用SingletonMap.putAll
时,它会调用SingletonMap.put
,然后抛出一个Exception。这就是为什么它是immutable
。