간단한 아날로그 WeakHashMap
1578 단어 WeakHashMap
1. 아날로그 맵 클래스를 만듭니다.
class WeakMapTest<K, V> {
private ReferenceQueue<K> rq = new ReferenceQueue<K>();
private List<MyEntry> list = new ArrayList<MyEntry>();
public void put(K k, V v) {
list.add(new MyEntry(k, v, rq));
}
public boolean cantains(V v) {
boolean flg = true;
MyEntry e = null;
while ((e = (MyEntry) rq.poll()) != null) {
e.v = null;
flg = false;
}
return flg;
}
class MyEntry extends WeakReference<K> {
private V v;
public MyEntry(K k, V v, ReferenceQueue<K> rq) {
super(k, rq);
this.v = v;
}
}
}
2. 아날로그 클래스 호출 실현
public void testMap() throws InterruptedException {
WeakMapTest<Object, Object> test = new WeakMapTest<Object, Object>();
Object k = new Object();
Object v = new Object();
test.put(k, v);
System.out.println(test.cantains(v));
k = null;
System.gc();
System.out.println(test.cantains(v));
}
public static void main(String[] args) {
try {
RefTest t = new RefTest();
t.testMap();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
3. 출력은 다음과 같다.
truefalse
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단한 아날로그 WeakHashMap이전 기사에서 언급한 WeakHashMap을 간단하게 모의해 보면 구체적인 코드는 다음과 같다. 1. 아날로그 맵 클래스를 만듭니다. 2. 아날로그 클래스 호출 실현 3. 출력은 다음과 같다. truefalse...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.