Я пытаюсь использовать 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);
}
}
Фактический результат:
false
true
{}
То есть
map.isEmpty () и map.keySet (). IsEmpty () не согласованы.Может ли кто-нибудь помочь мне понять это?Большое спасибо.