Java中的Hashmap与WeakHashMap
有助于区分它们的有关HashMap和WeakHashMap的详细信息如下-
Java中的HashMap
HashMap具有键值对,即与值关联的键,并且键的顺序是任意的。指定为键的HashMap对象不符合垃圾回收的条件。这意味着HashMap在垃圾收集器上具有优势。
演示此的程序如下所示-
示例
import java.util.*;
class A {
public String toString() {
return "A ";
}
public void finalize() {
System.out.println("Finalize method");
}
}
public class Demo {
public static void main(String args[])throws Exception {
HashMap hMap = new HashMap();
A obj = new A();
hMap.put(obj, " Apple ");
System.out.println(hMap);
obj = null;
System.gc();
Thread.sleep(5000);
System.out.println(hMap);
}
}上面程序的输出如下-
输出结果
{A = Apple }
{A = Apple }Java中的WeakHashMap
WeakHashMap具有键值对,即,它与Java中的HashMap非常相似。不同之处在于,指定为键的WeakHashMap对象仍然可以进行垃圾回收。这意味着垃圾收集器在WeakHashMap上具有优势。
演示此的程序如下所示-
示例
import java.util.*;
class A {
public String toString() {
return "A ";
}
public void finalize() {
System.out.println("Finalize method");
}
}
public class Demo {
public static void main(String args[])throws Exception {
WeakHashMap whMap = new WeakHashMap();
A obj = new A();
whMap.put(obj, " Apple ");
System.out.println(whMap);
obj = null;
System.gc();
Thread.sleep(5000);
System.out.println(whMap);
}
}上面程序的输出如下-
输出结果
{A = Apple }
Finalize method
{}