📅  最后修改于: 2023-12-03 14:42:54.435000             🧑  作者: Mango
HashMap是Java中的一个常用数据结构,用于存储键值对并快速进行查找和访问。HashMap主要通过哈希表来实现,哈希表是一个数组加链表的数据结构,其中数组的每个元素称为"桶",每个桶中会存储一个链表或红黑树,哈希表通过哈希函数将键映射到不同的桶中,从而实现快速查找。
HashMap<String, Object> map = new HashMap<>();
map.put("key1", "value1");
Object value = map.get("key1");
WeakHashMap是HashMap的一种变体,它的特点是允许对键的垃圾回收,也就是说如果一个键没有被其他对象引用,那么当垃圾回收器回收该键时,对应的键值对也会从WeakHashMap中自动移除。
WeakHashMap<String, Object> map = new WeakHashMap<>();
Object value = new Object();
String key = "key1";
map.put(key, value);
// 假设没有其他对象引用了value,下面代码执行后map将不再包含"key1"键的键值对
value = null;
System.gc();
HashMap和WeakHashMap都是常见的Java中的数据结构,它们各自有自己的特点和适用场景。在使用时应该根据实际情况选择合适的数据结构,以达到最佳的性能和效率。