【发布时间】:2011-01-31 00:53:36
【问题描述】:
为什么Java 不提供函数来获取HashSet 中的键/值对,就像Hashtable 中存在的那样?每次你需要做某事时都必须对其进行迭代,这似乎是一种真正的痛苦。或者有更简单的方法吗?
【问题讨论】:
-
你是说HashMap吗? HashSet 不包含键/值对。
为什么Java 不提供函数来获取HashSet 中的键/值对,就像Hashtable 中存在的那样?每次你需要做某事时都必须对其进行迭代,这似乎是一种真正的痛苦。或者有更简单的方法吗?
【问题讨论】:
HashSet 没有键/值对。它是对象的Set,您将使用 Set 的实现者来确保对象集合不包含重复项。
像HashMap 这样的Map 实现者拥有键/值对,并提供get(Object key) 方法来获取与键关联的值。
【讨论】:
由于Set 不包含键和值,因此无法提供这样的视图。
您认为什么是关键,Set 中的值是什么?
【讨论】:
HashSet 内部的HashMap 是一个实现细节,它在外部是不可见的。下一篇:如果您从未放入键/值对,那么您希望它显示什么?
Set 没有任何键/值对,只有(唯一)值。正如您已经说过的,您可以通过 Iterator 或通过使用 toArray() 方法返回包含这些值的数组来获取这些值。
也许您正在寻找List。
【讨论】: