从文档中,它返回$wnDropdown
这是一个接口。假设我写了这个,
Set<E>
我不明白这个Set<E> keys = myHashMap.keySet();
究竟返回了什么,或者什么是变量键。
另外,为什么我能够这样做
keySet()
因为接口没有实现任何方法。
答案 0 :(得分:2)
根据java doc,
Map.keyset()返回此映射中包含的键的set视图。该 set由地图支持,因此对地图的更改将反映在地图中 设置,反之亦然。如果迭代结束时修改了地图 该集正在进行中(除非通过迭代器自己的删除 操作),迭代的结果是未定义的。
所以基本上它是一个实现Set Interface的类的对象,这就是我们能够在该对象上调用iterator()的原因。
答案 1 :(得分:0)
HashMap.keySet()
返回哈希映射中的键集。
HashMap<Integer, String> myHashMap = new HashMap<>();
myHashMap.put(1, "one");
myHashMap.put(2, "two");
myHashMap.put(3, "three");
Set<Integer> keys = myHashMap.keySet();
System.out.println("keys of the map are: "+keys); // prints [1, 2, 3]
此外,Set<E>
扩展了Collection<E>
,Iterable<E>
也扩展了Iterable<E>
。这意味着Set<E>
是iterator()
的超级接口,这就是为什么您可以Set<E>
<T>
的原因
答案 2 :(得分:0)
myHashMap.keySet()
返回此地图myHashMap
中包含的键的Set视图。
请注意Map
与Set
不同,以便:
Map
由key
和value
对组成。 Key
正在映射到特定的value
。Set
仅适用于任何类型的单个对象。它们不是成对存储的。请参阅documentation。
什么是迭代器?
如果您想循环浏览集合中的元素,例如,您可能希望显示每个元素。在我们的示例中,如果要显示返回的集合中的每个键,那么我们将使用iterator
。
Iterator使您可以遍历集合,获取或删除元素。