WeakHashMap是Map接口的实现,该接口仅存储对其键的弱引用,当不再在WeakHashMap之外引用键值对时,仅存储弱引用将允许对键值对进行垃圾回收。
以下是WeakHashMap类支持的构造函数的列表。
Sr.No. | Constructor & Remark |
---|---|
1 |
WeakHashMap() 此构造函数使用默认的初始容量(16)和默认的加载因子(0.75)构造一个新的空WeakHashMap。 |
2 |
WeakHashMap(int initialCapacity) 此构造函数使用给定的初始容量和默认负载因子0.75构造一个新的空WeakHashMap。 |
3 |
WeakHashMap(int initialCapacity,float loadFactor) 此构造函数使用给定的初始容量和给定的负载因子构造一个新的空WeakHashMap。 |
4 |
WeakHashMap(Map t) 该构造函数构造一个新的WeakHashMap,其映射与指定的Map相同。 |
除了从其父类继承的方法之外,TreeMap还定义了以下方法-
Sr.No. | Method & Remark |
---|---|
1 |
void clear() 从该Map中删除所有映射。 |
2 |
boolean containsKey(Object key) 判断Map中是否包含key键 |
3 |
boolean containsKey(Object value) 判断Map中是否包含value值 |
4 |
Set entrySet() 返回Set集合 |
5 |
Object get(Object key) 根据键(key)返回关联的值。 |
6 |
boolean isEmpty() 判断是否为空 |
7 |
Set keySet() 返回包含key键的Set集合 |
8 |
Object put(Object key,Objet value) 往Map中写入key/value值 |
9 |
void putAll(Map m) 将m元素写入当前Map中 |
10 |
Object remove(Object key) 从Map中删除Key关联的对象 |
11 |
int size() 返回当前Map大小数 |
12 |
Collection values() 返回包含value集合 |
Weakhashmap 示例
以下程序说明了此集合支持的几种方法-
import java.util.*; public class WeakHashMap_Demo { private static Map map; public static void main (String args[]) { map = new WeakHashMap(); map.put(new String("Maine"), "Augusta"); Runnable runner = new Runnable() { public void run() { while (map.containsKey("Maine")) { try { Thread.sleep(500); } catch (InterruptedException ignored) { } System.out.println("Thread waiting"); System.gc(); } } }; Thread t = new Thread(runner); t.start(); System.out.println("Main waiting"); try { t.join(); } catch (InterruptedException ignored) { } } }
这将产生以下输出-
Main waiting Thread waiting
参考链接
https://www.learnfk.com/java/java-weakhashmap-class.html
标签:WeakHashMap,Java,Thread,Map,Object,无涯,key,构造函数 From: https://blog.51cto.com/u_14033984/8887737