首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的entrySet接口

java中的entrySet接口
EN

Stack Overflow用户
提问于 2018-05-11 09:38:07
回答 1查看 50关注 0票数 0
代码语言:javascript
复制
// Using entrySet() to get the entry's of the map
// m is previously created Map.

Set<Map.Entry<String,Integer>> s = m.entrySet();
for (Map.Entry<String, Integer> it: s)
{ 
    String str = it.getKey();
 }

Map.Enty只是一个接口。

接口没有getKey();方法的实现

为什么上面的代码可以工作?就像编译器如何知道getKey()的行为一样

EN

回答 1

Stack Overflow用户

发布于 2018-05-11 09:44:58

如下所示的代码:

代码语言:javascript
复制
static class Entry<K,V> implements Map.Entry<K,V>

这段代码来自HashMap,如果我们放入一个新的K-V条目,HashMap将创建一个新的HashMap.Entry实例:

代码语言:javascript
复制
void createEntry(int hash, K key, V value, int bucketIndex) {
    Entry<K,V> e = table[bucketIndex];
    table[bucketIndex] = new Entry<>(hash, key, value, e);
    size++;
}

因此,for-each循环中的每个it变量都是HashMap.Entry 的一个实例,该类实现了Map.Entry 接口

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50283782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档