有谁知道使用IdentityHashMap如何进行序列化或是深层复制吗?
来源:互联网 发布:js集合和数组 编辑:程序博客网 时间:2024/06/14 03:01
package newFeatures8;import java.util.IdentityHashMap;/** * * @author ljh *java API 中说此类的典型用法是拓扑保留对象图形转换,如序列化或深层复制。 *要执行这样的转换,程序必须维护用于跟踪所有已处理对象引用的“节点表”。 *节点表一定不等于不同对象,即使它们偶然相等也如此。此类的另一种典型用法是维护代理对象。 *例如,调试设施可能希望为正在调试程序中的每个对象维护代理对象。 *@description * 其实我也很想知道使用IdentityHashMap如何进行序列化或是深层复制 * 其他的博主也是一笔带过,只是说了一下与HashMap的区别 *//* * 两者最主要的区别是IdentityHashMap使用的是==比较key的值,而HashMap使用的是equals()HashMap使用的是hashCode()查找位置,IdentityHashMap使用的是System.identityHashCode(object)IdentityHashMap理论上来说速度要比HashMap快一点另外一点呢就是IdentityHashMap中key能重复,但需要注意一点的是key比较的方法是==,所以若要存放两个相同的key,就需要存放不同的地址,下面用代码来说明:*//* * 举个例子,jvm中的所有对象都是独一无二的,哪怕两个对象是同一个class的对象, * 而且两个对象的数据完全相同,对于jvm来说,他们也是完全不同的,如果要用一个map来记录这样jvm中的对象, * 你就需要用IdentityHashMap,而不能使用其他Map实现。 * */public class IdentityHashMapDemo {public static void main(String[] args) {IdentityHashMap<String,String> identityHashMap=new IdentityHashMap<>();identityHashMap.put("2", "李四");identityHashMap.put("3", "王五");identityHashMap.put("4", "赵六");identityHashMap.put("5", "田七");identityHashMap.put("1", "张三");//有相同键时,使用get方法获取的是第一个identityHashMap.put(new String("1"), "田七");System.out.println(identityHashMap.toString());}}
阅读全文
0 0
- 有谁知道使用IdentityHashMap如何进行序列化或是深层复制吗?
- 用Vector进行深层复制
- 有谁知道
- 有谁知道返利网是如何操作的,对方有接口吗?
- 有谁知道如何在长文本的工具栏里添加一个按钮吗?
- 急!有谁知道如何截获WebBrowser控件的 ie脚本错误提示 吗?
- 有谁知道怎么用WB Editor吗?
- 有谁知道vs的外挂吗?
- 有谁知道dedecms模板怎么用吗
- 回溯与栈如何进行深层理解
- 有谁知道ios如何访问Azure的相关服务?
- IdentityHashMap 使用总结
- IdentityHashMap的使用
- 使用BinaryFormatter进行序列化
- 使用SoapFormatter进行序列化
- 使用XmlSerializer进行序列化
- 使用序列化进行Clone
- 使用AFNetworking进行序列化
- map
- echarts3 柱状图数字在柱的顶部显示
- spring data es拼音插件
- postgreSQL常用语句
- hibernate 注解 系列文章
- 有谁知道使用IdentityHashMap如何进行序列化或是深层复制吗?
- bzoj3192: [JLOI2013]删除物品
- 【Python pip 基础命令】
- 数组
- nodejs中搭建mqtt
- Linux Base64命令
- 发送http的post请求并通过request接收post请求体
- 9-18
- 学习相关