java.util.IdentityHashMap
时间:2010-07-19 来源:inter12
Map<Object, String> map = new IdentityHashMap<Object, String>();
Object object = new Integer("123");
Object object2 = new Integer("234");
map.put(object, "first");
map.put(object2, "second");
System.out.println(map.get(object));//first
System.out.println(map.get(object2));//second
这里的规则不是依据原来MAP的规则。而是只有 k1 == k2 才满足,而不是k1.equals(k2)。
常用地方:
此类的典型用法是拓扑保留对象图形转换,如序列化或深层复制。要执行这样的转换,程序必须维护用于跟踪所有已处理对象引用的“节点表”。节点表一定不等于不同对象,即使它们偶然相等也如此。此类的另一种典型用法是维护代理对象。例如,调试设施可能希望为正在调试程序中的每个对象维护代理对象。
Object object = new Integer("123");
Object object2 = new Integer("234");
map.put(object, "first");
map.put(object2, "second");
System.out.println(map.get(object));//first
System.out.println(map.get(object2));//second
这里的规则不是依据原来MAP的规则。而是只有 k1 == k2 才满足,而不是k1.equals(k2)。
常用地方:
此类的典型用法是拓扑保留对象图形转换,如序列化或深层复制。要执行这样的转换,程序必须维护用于跟踪所有已处理对象引用的“节点表”。节点表一定不等于不同对象,即使它们偶然相等也如此。此类的另一种典型用法是维护代理对象。例如,调试设施可能希望为正在调试程序中的每个对象维护代理对象。
相关阅读 更多 +