Hashtable的深拷贝
http://blog.csdn.net/pc620/article/details/6254422
今天编写项目时遇到一个逻辑错误:
Hashtable ht2 = new Hashtable();
ht2 = ht1;
我以为像上面这样写就能实现在内存中将ht1复制一遍给ht2,但实际这样写是浅拷贝,ht2和ht1实际指向的是同一个地址,任意一个改变了hashtable的值另一个也相应的改变,就相当于ht2是ht1的引用。
要实现深拷贝,代码如下:
Hashtable ht2 = new Hashtable(ht1);
这样写ht2就不单单是引用了,会有自己的内存空间。不过有一个问题,虽然都是那几个值,但好像ht2中的每个值存放的位置和ht1不一样了~
注:谢谢eagle0123的提醒,我的这种方式如果value不是基本类型时也是浅拷贝!
Hashtable的深拷贝相关推荐
- Python 精选笔试面试习题—类继承、方法对象、包管理、闭包、可变类型作为默认参数、列表引用、sort与sorted、 append 和 extend、深拷贝和浅拷贝
1. 类继承 如下代码 class A(object):def show(self):print 'This is calss A'class B(A):def show(self):print 'T ...
- 【STL源码剖析读书笔记】【第5章】关联式容器之hashtable
1.hashtable在插入.删除.搜寻操作上具有"常数平均时间"的表现,不依赖输入元素的随机性. 2.hashtable通过hashfunction将元素映射到不同的位置,但当不 ...
- JavaScript深拷贝Json
今天因为项目需要写了个Json格式的深拷贝(深度复制).很简单,没有做其他的判断,代码如下: function deepCopy(json){if(typeof json == 'number' || ...
- 对象特性---->深拷贝与浅拷贝
浅拷贝:简单的赋值拷贝操作. 深拷贝:在堆区申请一块空间,进行拷贝操作. 浅拷贝:编译器提供的拷贝构造函数对传入值进行赋值拷贝操作 #include<iostream> using nam ...
- HashMap 和 Hashtable 的 6 个区别,最后一个没几个人知道!
HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的,也是在各种 Java 面试场合中必须会问到的. 但你对这两者的区别了解有多少呢? 现在,栈长我给大家总结一下,或许有你不明 ...
- java 中的 Enumeration 在Vector,Hashtable和web中的应用
public interface Enumeration<E> 实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个.连续调用 nextElement方法将返回一系列的 ...
- 在C#中应用哈希表(Hashtable)
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
- 调试JDK源码-Hashtable实现原理以及线程安全的原因
调试JDK源码-一步一步看HashMap怎么Hash和扩容 调试JDK源码-ConcurrentHashMap实现原理 调试JDK源码-HashSet实现原理 调试JDK源码-调试JDK源码-Hash ...
- C语言的HashTable简单实现
原文地址:http://blog.csdn.net/zmxiangde_88/article/details/8025541 HashTable是在实际应用中很重要的一个结构,下面讨论一个简单的实现, ...
- HashTable原理与实现
memcached中hashtable部分的源码,hash部分的源码主要分布在assoc.h/c.hash.h/c中,总得来说代码比较简单,这里就稍微介绍一下. hashtable通常包括哈希函数和解 ...
最新文章
- 用到的 git 命令
- PopupWindow的一些使用总结
- swift 展示html富文本,Swift HTML富文本显示
- matlab相机标定
- c语言汉字转拼音,c语言汉字转拼音函数源码 汉字拼音转换
- 计算机网络分层协议及各层功能
- 12.分布式定时任务(xxl-job)
- 累积你的All Blue-使用集成库-PCB系列教程1-4
- 计算机二级excel高级筛选,Excel 如何按双条件执行高级筛选?
- 基于FPGA和ABZ增量式编码器的转子位置检测
- 【Echarts】- 制作饼图
- lap.lapjv使用方法
- Linux安装Oracle报Checking operating system version must be redhat-3, SuSE-9, redhat-4, UnitedLin
- 调试器GDB的基本使用方法
- 【Spring】Spring MVC原理及配置详解
- NORDIC Thingy:52 蓝牙 BLE 服务协议定义
- Geogebra 教程之 04 Geogebra 小程序
- 并查集——银河英雄传说()
- 腾讯放大招,首张区块链发票亮相深圳,日后发票报销几分钟搞定
- centos7.6 服务器搭建Java环境(若依--srs)
热门文章
- Introduction to modern cryptography 第二章阅读笔记
- 荣耀热键驱动无法安装
- 微软经典面试题(数字翻译为中文)
- Python 【趣头条】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
- 头条视频中视频玩法技巧
- element时间日期选择器组件设置默认时间
- nifty bootstrap_nifty admin_nifty admin 下载-一个高端的bootstrap后台管理模板
- TDK是什么意思,TDK怎么写?怎么利于SEO优化?
- 日常生活中使用计算机要注意事项有哪些,笔记本电脑日常使用注意事项以及保养技巧...
- numpy对数据集进行shuffle