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
{}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP