我对LinkedHashMap
感到困惑。
在Set
中我们没有任何键值对,所以当我们尝试打印set元素时,我们将不会为我们插入的打印元素保留顺序,意味着不保留顺序,但是当我们是使用LinkedHashSet
,这将确保订单将被保留,因为我们已将元素插入到链接的哈希集中,而打印时我们将获得相同的顺序。这很有意义。
但是在Map
的情况下,我们只使用键打印值,那么说LinkedHashMap
保留顺序的逻辑是什么?我们应该使用key打印值,因此无论键值对在哪里,键都将打印其值。它必须去映射并搜索该密钥,最后打印它的值。
我希望你能得到我的问题..
答案 0 :(得分:3)
当您迭代地图时,它将在链接的哈希地图中管理您的订单。
并不总是只使用密钥获取值。你需要从地图中获取所有元素,你可能不知道它。例如 - 创建使用地图选择下拉。
for (Map.Entry<String, String> entry : map.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}
答案 1 :(得分:3)
那么说链接哈希映射保留顺序
的逻辑是什么
LinkedHashMap
保留(默认情况下)键首次插入Map的顺序。您可以使用keySet
或使用entrySet
对条目迭代密钥,以便按此顺序获取密钥/条目。
答案 2 :(得分:2)
首先,您可以在不使用键的情况下访问map的值,您可以使用values方法。所有这些都取决于场景。
答案 3 :(得分:0)
除了已经提到的方法之外,您还可以使用map.forEach()
按插入顺序迭代地图条目。