从链接哈希映射派生时数组的顺序是什么?



我创建了一个链接的哈希映射,然后使用该映射生成了如下所示的映射键数组:-

Map<String, String> map = new LinkedHashMap<>();
map.put("Str1", "Str1");
map.put("Str1", "Str1");
String[] keyArray= map.keySet().stream.toArray(String[]::new);

现在,问题是键数组的顺序是什么?它与链接哈希图的顺序相同还是不同?如果它不同,那么我们如何生成一个具有相同插入顺序的数组,链接哈希映射具有?

来自 java.util.stream 文档:

流可能有也可能没有定义的遭遇顺序。流是否具有遭遇顺序取决于源和中间操作。某些流源(如列表或数组(本质上是有序的,而其他源(如哈希集(则不是。某些中间操作(如 sorted(((可能会对其他无序流施加遭遇顺序,而其他操作可能会使有序流呈现无序,例如 BaseStream.unordered((。

来自 LinkedHashMap 文档

此链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序(

由于 LinkedHashMap 用作源并且它维护排序,因此可以预期生成的数组与其源具有相同的排序。

最新更新