gpt4 book ai didi

java - ConcurrentIdentityWeakKeyHashMap 和整数键

转载 作者:行者123 更新时间:2023-11-30 11:45:53 24 4
gpt4 key购买 nike

虽然是内部的,但我认为通常使用 ConcurrentIdentityWeakKeyHashMap 是安全的。但是,下面的代码:

ConcurrentIdentityWeakKeyHashMap map = new ConcurrentIdentityWeakKeyHashMap();
for(int key = 0; key < 132; key++){
map.put(key, key);
}
for(int key = 0; key < 132; key++){
System.out.println(map.get(key));
}

产生:

0
1
..
124
125
126
127
null
null
null
null

这是错误还是我的误解(即“不应与整数一起使用”或“仅供内部使用”)?

编辑:根据 Lucianos 的评论,我稍微修改了代码,使其在列表和 map 中保留对(我希望至少)完全相同的 Integer 的引用:

 ArrayList<Integer> list = new ArrayList<Integer>(132);
ConcurrentIdentityWeakKeyHashMap<Integer, Integer> map = new ConcurrentIdentityWeakKeyHashMap<Integer, Integer>();
for(int key = 0; key < 132; key++){
Integer key2 = key;
list.add(key2);
map.put(key2, key2);
}
for(int key = 0; key < 132; key++){
System.out.println(map.get(list.get(key)));
}

现在,它起作用了......

最佳答案

Integer 类中预缓存了最大 127 的整数,因此它们永远不会被垃圾回收。

关于java - ConcurrentIdentityWeakKeyHashMap 和整数键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115008/

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