Java为数据结构中的映射定义了一个接口java.util.Map,它有4个实现类:HashTable、HashMap、TreeMap、WeakHashMap。

HashMap和HashTable的区别:

1)HashMap是JDK1.2引进的一个Map接口的实现,HashTable实现Map接口的同时也继承了抽象类Dictionary。

2)HashMap不是线程安全的,HashTable是线程安全的;就效率而言,HashMap可能高于HashTable。

3)HashMap允许空键值(即null做为key),但是HashTable不允许空键值。

4)HashMap去掉了HashTable的contains(),改成了containsValue()和containsKey()方法。

5)HashMap使用Iterator遍历元素,HashTable使用Enumeration

6)HashMap的hash数组默认大小是16,而且一定是2的指数,HashTable的默认hash数组大小是11,增加方式是old×2+1

7)HashMap和HashTable的hash值使用不同

HashMap和TreeMap的区别:

1)HashMap里面存入的键值对在取出时没有固定顺序,是随机的,而TreeMap由于实现了SortMap接口,能够把它保存的记录根据键值排序,因此取出来的是排序后的键值对。

2)HashMap有一个子类LinkedHashMap,可以实现输出顺序与输入顺序相同

HashMap和WeakHashMap的区别:

HashMap中的key采用的是“强引用方式”,当HashMap中的Key没有被外部引用时,只有在这个key从HashMap中删除后,才可以被垃圾回收器回收。

WeakHashMap中可以采用的是“弱引用方式”,只要WeakHashMap中的key不再被外部引用,它就可以被垃圾回收器回收。

最新文章

  1. 在你的ASP.NET MVC中使用查找功能
  2. J2EE学习(2)--何謂容器【良葛格学习笔记搬】
  3. 让Windows 7内置Administrator 用户也能使用指纹登录
  4. php远程图片抓取存放到本地路径并生成缩略图
  5. phpstorm安装,破解及使用
  6. Thu夏令营 总结
  7. 深入探究VC —— 资源编译器rc.exe(3)
  8. 配置rhel 6.4(64位)安装使用syslog-ng 3.5
  9. OPENCV3——从入门到出门
  10. angularJs-route路由详解
  11. STM32 - GPIO
  12. PHP中利用DOM和simplxml读取xml文档
  13. 美团java后台实习三面
  14. 剑指offer--矩阵中的路径
  15. C# 远程获取图片二进制
  16. hadoop from rookie to ninja - 1. Basic Architecture(基础架构)
  17. css/html/Javascript/getUrlCode/各种前端小点汇总集合
  18. 组播协议——IGMP v2报文头介绍
  19. GPU下train 模型出现nan
  20. Android——用Activity和Service实现简单的音乐播放器

热门文章

  1. 运行VUE的前端项目
  2. SoundChannel和soundTransform的关系
  3. Linux下安装和使用nginx
  4. 像素 转换 px dp
  5. nth-child & nth-of-type区别
  6. Mybatis 表名是变量时
  7. f5健康检查
  8. require模块化载入
  9. 鼠标移上去触动hover致使div向上移动几个相素(动画transition轻轻的移动)
  10. 2017-2018-2 20165315 实验三《敏捷开发与XP实践》实验报告