LinkedHashMap<String,ArrayList<String>> h;
它包含:
key 1 : value A, B, C, D
2 : E,F
3 : G
我不太明白设置界面。也许一点可视化会有所帮助。请帮我想象LinkedHashMap中的所有这些元素一旦我将它们转换为Set,它们会是什么样子?
Set set = h.entrySet();
对不起,也许我的问题有点晦涩难懂。随着线程的发展,我将尝试锐化它。
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
。
entrySet()
只是映射中的条目(键值对)。它将帮助您查看 entrySet()
返回的类型,这在您的示例中Set<Map.Entry<String, ArrayList<String>>>
。请参阅 Map.Entry javadoc。
另请注意,地图不会转换为条目集,而是将条目集转换为映射中条目的视图。
就Set
是什么而言:它是一组元素,根据唯一的某些定义,每个元素都是唯一的(大多数Set
s为equals
/hashCode
,SortedSet
s为Comparable
/Comparator
)。由于Map
最多可以有一个值映射到单个键,因此每个键值条目都保证是唯一的。