如何在集合中增加价值

时间:2012-06-05 06:34:53

标签: java

我有一个像这样的Hashtable:

Hashtable<String, String> ht = new Hashtable<String, String>();
 ht.put("A", "one");
 ht.put("B", "two");

然后我调用它的values()方法来获取它的值并存储在  像这样的集合对象:

Collection<String> col = ht.values();

现在这个集合对象具有以下值:

 one, two.

然后我打电话给col.add(" three");这次我收到了这个错误:

Exception in thread "main" java.lang.UnsupportedOperationException.

我检查了API:

If a collection refuses to add a particular element for any reason other than that it already contains the element, it must throw an exception (rather than returning false)

我为集合添加的值(“三”)是唯一的,而不是重复的。但我可以对其执行其他操作,例如remove()clear()操作。

无法拨打add()。为什么不允许添加?

2 个答案:

答案 0 :(得分:7)

Hashtable中values()方法返回的集合不支持添加新元素。

来自javadocs

  

返回此Hashtable中包含的值的Collection视图。   Collection由Hashtable支持,因此更改为Hashtable   反映在集合中,反之亦然。收藏   支持元素删除(从中删除相应的条目)   Hashtable),但不是元素添加

答案 1 :(得分:0)

除上述答案外,Hashtable还需要键值对。您只是添加值而不是键,因此它会引发异常。