【发布时间】:2013-11-13 10:03:35
【问题描述】:
我有 2 个不同的 HashMap 实例
我想合并两个 HashMap 的键集;
代码:
Set<String> mySet = hashMap1.keySet();
mySet.addAll(hashMap2.keySet());
例外:
java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(AbstractCollection.java:238)
at java.util.AbstractCollection.addAll(AbstractCollection.java:322)
我没有收到编译警告或错误。
从 java doc 这应该可以工作。即使添加的集合也是一个集合:
boolean addAll(Collection c)
将指定集合中的所有元素添加到此集合中,如果 它们不存在(可选操作)。如果指定 collection 也是一个集合,addAll 操作有效地修改了 这个集合使得它的值是两个集合的并集。行为 如果指定的集合被修改,则此操作的未定义 操作进行中。
【问题讨论】:
-
请注意,如果其中一组是不可变的,也会发生这种情况
标签: java collections set