为了账号安全,请及时绑定邮箱和手机立即绑定

testEntrySet方法问题

Set<Entry<String,Student>> entrySet = students.entrySet();

这段代码通过entrySet方法返回Map中的所有键值对,为什么返回的键值对可以保存在Set集合中?键值对不是应该保存在Map集合中吗?

正在回答

6 回答

entrySet()这个方法的声明是这样的

Set<Map.Entry<K,V>> entrySet()

它的返回值就是泛型为Entry的Set集合,而Entry的泛型在本例中是<String ,Student>

0 回复 有任何疑惑可以回复我~

這里的Entry就泛型的類型 (鍵值對對象)也是一個靜態的內部類

0 回复 有任何疑惑可以回复我~

 class Map{

        static Entry{

            private <t>key;

                private <t>value;

          }

}

1 回复 有任何疑惑可以回复我~

entrySet

Set<Map.Entry<K,V>> entrySet()

返回此映射中包含的映射关系的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过对迭代器返回的映射项执行 setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。


返回:

此映射中包含的映射关系的 set 视图

我觉得这只是实现了读取,没有其他对map改变了,遍历输出。

0 回复 有任何疑惑可以回复我~
#1

qq_逻辑演绎法_03669459

Entryset是一個鍵值對對象,Set是保存了這些鍵值對對象 Set<Map.Entry<K,V>> entrySet()//Map.Entry這種是嵌套類的使用 Set<Entry<String,Student>> entrySet = students.entrySet();這么些可能是新的寫法吧...不清楚
2016-09-26 回复 有任何疑惑可以回复我~

返回不是返回给了Set集合,而是返回给了entrySet,相当于提取出来赋值

1 回复 有任何疑惑可以回复我~
#1

Yatee 提问者

那它返回给了entryset entryset不就是一个Set集合吗?
2016-08-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

testEntrySet方法问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信