检查时,Java的层次结构Set
和Map
是不同的接口,Map
不实现 Collection
接口。 Set
用于保存唯一值,无论排序如何,Map
用于唯一键和映射值而不排序(LinkedHashMap
,TreeMap
除外)。 AFAIS,主要的共同点是它们都使用哈希表来存储。我的问题是关于entrySet()
方法。我只知道它用于迭代以获取密钥和映射值的方法。
Set
<Map.Entry<K,V>>
?我的意思是为什么
设置,为什么不 ArrayList 或其他什么?HashMap
的方法了?)我的结构彼此不同。但它似乎都互相利用。理解它有点模糊。你能说清楚吗?
答案 0 :(得分:1)
为什么它的返回类型使用Set&gt;?我的意思是为什么Set,为什么不是ArrayList或什么?
Set
是首选的Collection
类型,用于一组没有排序的唯一元素。 Map
的条目是唯一的,因为密钥必须是唯一的。基础Map
接口假定其条目没有排序,因此List
个条目不合适。
方法(集合)的后缀是否表达了为什么entrySet为什么不是entryFoo或entryMap(它已经是HashMap的方法)?
它会返回Set
个条目,因此entrySet()
非常有意义。