LinkedHashMap<String,ArrayList<String>> h;
它包含:
key 1 : value A, B, C, D
2 : E,F
3 : G
我不太了解Set界面。也许一点可视化会有所帮助。请帮我看看LinkedHashMap中的所有元素在将它们转换为Set后会是什么样子?
Set set = h.entrySet();
对不起,也许我的问题有点模糊。随着线程的发展,我会尝试磨砺它。
答案 0 :(得分:1)
Map
的条目集是地图中条目集。
地图中的条目是从键到值的映射。在地图属于...<String, ArrayList<String>>
类型的情况下,单个条目是一对String
(密钥)和ArrayList<String>
(值)。
以下代码段可能会对此有所了解:
LinkedHashMap<String, List<String>> map =
new LinkedHashMap<String, List<String>>();
map.put("1", Arrays.asList("A", "B", "C"));
map.put("2", Arrays.asList("E", "F"));
map.put("3", Arrays.asList("G"));
System.out.println(map.entrySet());
System.out.println(map.entrySet().getClass());
<强>输出:强>
[1=[A, B, C], 2=[E, F], 3=[G]] # All entries (key/value pairs)
class java.util.HashMap$EntrySet # This particular entry set class.
例如,在这种情况下,条目集实际上是HashMap
的内部类,名为EntrySet
。
答案 1 :(得分:1)
entrySet()
只是地图中的条目(键值对)。它可以帮助您查看entrySet()
返回的类型,在您的示例中为Set<Map.Entry<String, ArrayList<String>>>
。请参阅Map.Entry javadoc。
另请注意,地图不会转换为条目集 - 相反,条目集是地图中条目的视图。
至于Set
是什么:它是一组元素,根据大多数equals
的唯一(hashCode
/ Set
定义,每个元素都是唯一的,Comparable
/ Comparator
代表SortedSet
s)。由于Map
最多只能有一个映射到单个键的值,因此每个键值条目都保证是唯一的。