我试图使用Java7的WeakHashMap,我发现它的isEmpty()方法给了我错误的结果。
import java.util.Map;
import java.util.WeakHashMap;
public class Test
{
public static void main(final String[] args)
{
final Map<String, Boolean> map = new WeakHashMap<>();
String b = new String("B");
map.put(b, true);
b = null;
System.gc();
System.out.println(map.isEmpty());
System.out.println(map.keySet().isEmpty());
System.out.println(map);
}
}
实际结果:
假
真
{}
也就是说,
map.isEmpty() 和 map.keySet().isEmpty() 不一致。有人能帮我理解它吗?多谢。
HUH函数
慕的地8271018
相关分类