Java API - entrySet()上的死胡同

时间:2017-04-30 11:04:00

标签: java collections hashmap set hashset

检查时,Java的层次结构SetMap是不同的接口,Map实现 Collection接口。 Set用于保存唯一值,无论排序如何,Map用于唯一键和映射值而不排序(LinkedHashMapTreeMap除外)。 AFAIS,主要的共同点是它们都使用哈希表来存储。我的问题是关于entrySet()方法。我只知道它用于迭代以获取密钥和映射值的方法。

  • 该方法还有其他用法吗?
  • 为什么其返回类型使用 Set <Map.Entry<K,V>>?我的意思是为什么 设置,为什么不 ArrayList 或其他什么?
  • 方法(集)的后缀是否表达为什么输入设置 为什么不输入 Foo 或输入地图(它已经是HashMap的方法了?)

我的结构彼此不同。但它似乎都互相利用。理解它有点模糊。你能说清楚吗?

1 个答案:

答案 0 :(得分:1)

  

为什么它的返回类型使用Set&gt;?我的意思是为什么Set,为什么不是ArrayList或什么?

Set是首选的Collection类型,用于一组没有排序的唯一元素。 Map的条目是唯一的,因为密钥必须是唯一的。基础Map接口假定其条目没有排序,因此List个条目不合适。

  

方法(集合)的后缀是否表达了为什么entrySet为什么不是entryFoo或entryMap(它已经是HashMap的方法)?

它会返回Set个条目,因此entrySet()非常有意义。