关于 HashMap 集合的 keySet() 方法
About HashMap collection's keySet() method
Map<K, V> map = HashMap<K, V>();
Set<K> keySet = map.keySet(); //'map' is parameter of HashMap object
Iterator<K> keyIterator = keySet.iterator();
我正在研究如何通过 'Iterator' 获取密钥。上面的代码是其中的一部分。
但是 [Set<K> keySet = map.keySet();]
<- 在这部分
不就是HashMap
的keySet()
方法是Set
接口的 keySet()
方法在HashMap
中重新定义的吗?
但是我在JAVAAPI文档的方法菜单中找不到它。
keySet()
方法 returns HashMap
类型 KeySet
中的一组键。 HashMap 中的内部实现实现 AbstractSet
并将键存储到名称为 keySet
.
的集合中
HashMap
中实现的层次结构:
|---- Collection<E> extends Iterable<E>
|
|------- Set<E> extends Collection<E>
|
|------------ AbstractSet<E> extends AbstractCollection<E> implements Set<E>
|
|--------------- KeySet extends AbstractSet<K>
你似乎把这件事变得比必要的更复杂了。
Map 有一些键;它将以 Set 的形式向您展示这些键。
Set<> 必须实现 Set<> 接口,该接口具有 Iterable<> 作为子接口。因此,您可以获得 Set 上的迭代器。
既然它是一个迭代器,那么如果你迭代它,它最终会产生所有可能的键。即:
while (iterator.hasNext()) {
key = iterator.Next(); // <<< this is the key
:
}
但是你到底想做什么?
i'm studying about how i can get key by 'iterator' above is part of
that
Map 和 Set 接口的要点是您可以直接通过键访问它们。
你当然可以做到。但是我从来不需要获取 keySet
迭代器。您只需执行以下操作即可。
Map<String, Object> map = new HashMap<>();
// later
for (String key : map.keySet()) {
// so something with keys (e.g) print them.
System.out.println(key);
}
不过你也可以这样做。
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
Map<K, V> map = HashMap<K, V>();
Set<K> keySet = map.keySet(); //'map' is parameter of HashMap object
Iterator<K> keyIterator = keySet.iterator();
我正在研究如何通过 'Iterator' 获取密钥。上面的代码是其中的一部分。
但是 [Set<K> keySet = map.keySet();]
<- 在这部分
不就是HashMap
的keySet()
方法是Set
接口的 keySet()
方法在HashMap
中重新定义的吗?
但是我在JAVAAPI文档的方法菜单中找不到它。
keySet()
方法 returns HashMap
类型 KeySet
中的一组键。 HashMap 中的内部实现实现 AbstractSet
并将键存储到名称为 keySet
.
HashMap
中实现的层次结构:
|---- Collection<E> extends Iterable<E>
|
|------- Set<E> extends Collection<E>
|
|------------ AbstractSet<E> extends AbstractCollection<E> implements Set<E>
|
|--------------- KeySet extends AbstractSet<K>
你似乎把这件事变得比必要的更复杂了。
Map
Set<> 必须实现 Set<> 接口,该接口具有 Iterable<> 作为子接口。因此,您可以获得 Set 上的迭代器。
既然它是一个迭代器,那么如果你迭代它,它最终会产生所有可能的键。即:
while (iterator.hasNext()) {
key = iterator.Next(); // <<< this is the key
:
}
但是你到底想做什么?
i'm studying about how i can get key by 'iterator' above is part of that
Map 和 Set 接口的要点是您可以直接通过键访问它们。
你当然可以做到。但是我从来不需要获取 keySet
迭代器。您只需执行以下操作即可。
Map<String, Object> map = new HashMap<>();
// later
for (String key : map.keySet()) {
// so something with keys (e.g) print them.
System.out.println(key);
}
不过你也可以这样做。
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()) {
System.out.println(it.next());
}