public class MyCache {
AbstractMap<String, AbstractMap<String, Element>> cache = new TreeMap<String, AbstractMap<String,
Element>>();
public Boolean putElement(String targetNamespace, Element element) {
...
}
public void clear() {
cache.clear();
}
// is it better this way?
public void deepClear() {
for(AbstractMap<String, Element> innerMap : cache.values()) {
innerMap.clear();
}
cache.clear();
}
}
루트 맵의 값을 반복하고 루트에 중첩 된 모든 맵을 먼저 지우거나 가장 바깥 쪽 맵을 지우려면 충분합니까? 두 가지 방법 사이에 JVM의 메모리 소비에 차이가 있다면 내 주요 질문은 무엇입니까?Java에서 중첩 된 맵을 지우는 좋은 방법
'AbstractMap'을 사용하는 특별한 이유가 있다면,'Map'' 인터페이스를 직접 사용하지 않을까요? – harsh
아니요, "AbstractMap"대신 "Map"을 사용하면 내 IDE가 항상 java.util 이외의 패키지에서 Map 구현을 제안하기 때문입니다. –