import java.util.Map;
import java.util.WeakHashMap;
class Test {
public static void main
(final String[] args
) { final Map<A, B> map = new WeakHashMap<>();
for (int i = 0; i < 10000; i++) {
final B b = new B();
final A a = b.a;
map.put(a, b);
}
for (int i = 0; i < 10; i++) {
System.
gc(); // Just to be sure :P }
System.
out.
println(map.
size()); }
private static class A {
}
private static class B {
public A a = new A();
}
}
aW1wb3J0IGphdmEudXRpbC5NYXA7CmltcG9ydCBqYXZhLnV0aWwuV2Vha0hhc2hNYXA7CgpjbGFzcyBUZXN0IHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKGZpbmFsIFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBmaW5hbCBNYXA8QSwgQj4gbWFwID0gbmV3IFdlYWtIYXNoTWFwPD4oKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKICAgICAgICAgICAgZmluYWwgQiBiID0gbmV3IEIoKTsKICAgICAgICAgICAgZmluYWwgQSBhID0gYi5hOwogICAgICAgICAgICBtYXAucHV0KGEsIGIpOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CiAgICAgICAgICAgIFN5c3RlbS5nYygpOyAvLyBKdXN0IHRvIGJlIHN1cmUgOlAKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXAuc2l6ZSgpKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBBIHsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBCIHsKICAgICAgICBwdWJsaWMgQSBhID0gbmV3IEEoKTsKICAgIH0KfQ==