gpt4 book ai didi

Java 集合排序

转载 作者:行者123 更新时间:2023-11-29 10:18:12 25 4
gpt4 key购买 nike

我们都知道 Set (除了他们这样的实现)不保证迭代顺序。所以我试着用下面的示例代码来确保这一点。

public static void main(String[] args) throws InterruptedException {
Map<String,String> lMap=new HashMap<String, String>();
lMap.put("A", "A");
lMap.put("B", "B");
lMap.put("C", "C");
lMap.put("D", "D");
lMap.put("E", "E");
lMap.put("F", "F");
lMap.put("G", "G");
lMap.put("H", "H");
lMap.put("I", "I");
lMap.put("J", "J");
lMap.put("K", "K");
lMap.put("L", "L");
for(int i=0;i<10000;i++){

Thread.sleep(100);
Set<Entry<String, String>> entrYset=lMap.entrySet();
for(Map.Entry<String, String> e:entrYset){
System.out.println(e.getKey()+" , "+e.getValue());
}
System.out.println("******************************************************");
}
}

我多次执行上面的代码,发现是按顺序打印记录。

我的问题是 java 是否声称 HashMap是无序的那么为什么这个记录是按顺序打印的。如果有人能用例子给我理由,那就太好了。

最佳答案

每次的顺序都是一样的,因为字符串的散列码没有改变,而且你是以相同的顺序插入的。 Hashmap 是确定性的,因此如果您创建相同的 hashmap 并以相同的顺序插入内容,您将始终获得一致的顺序。

Hashmap 不保证此顺序将保持一致。如果您插入更多项目,则排序可能会随着哈希表的重建而完全改变。

关于Java 集合排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com