📜  Java中的WeakHashMap get()方法(1)

📅  最后修改于: 2023-12-03 15:02:00.319000             🧑  作者: Mango

Java中的WeakHashMap get()方法

简介

java.util.WeakHashMap是Java中的一个集合类,它的特点是它的键值对对垃圾回收机制有很好的支持。该类继承自AbstractMap类,并且实现了Map接口。

WeakHashMap的键是“弱键”,意味着当该键不再被引用时,它的垃圾回收器可以自动将它从map中清除。这种自动行为使得WeakHashMap非常适合缓存中间结果,这些中间结果可能不再被使用,但仍在map中占用内存。

该类的get方法用于从map中获取与指定键相关联的值,如果键不存在于map中,则该方法返回null。

语法
V get(Object key)
参数
  • key: 指定键。
返回值

返回与指定键关联的值,如果该键不存在于映射中,则返回null。

示例
import java.util.WeakHashMap;

public class Example {
    public static void main(String[] args) {
        // 创建WeakHashMap对象
        WeakHashMap<Integer, String> weakHashMap = new WeakHashMap<>();

        // 添加键值对
        Integer key1 = new Integer(1);
        String value1 = "value1";
        weakHashMap.put(key1, value1);

        // 获取key1的value值
        System.out.println("Value of key1: " + weakHashMap.get(key1)); // 输出:Value of key1: value1

        // 将key1设为null
        key1 = null;

        // 手动触发垃圾回收器
        System.gc();

        // 再次尝试获取key1的value值
        System.out.println("Value of key1 after GC: " + weakHashMap.get(key1)); // 输出:Value of key1 after GC: null
    }
}
注意事项
  1. WeakHashMap类用弱引用的方式关联键,如果键没有其他引用,则可能被垃圾回收机制回收,并从Map中自动删除。
  2. WeakHashMap类的性能通常比HashMap差,因为在更新表格时需要执行额外的操作以确保表格中没有不再被任何其他对象引用的条目。

更多关于WeakHashMap的内容,请查阅官方文档。