一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。

但如果您要bai按自然顺序或自定义顺序遍历键,那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列。

HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL。
HashMap不支持线程同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致性。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。

Hashtable与HashMap类似,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtable在写入时会比较慢。

LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。
在遍历的时候会比HashMap慢TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。

最新文章

  1. Rehosting the Workflow Designer
  2. px 和 em
  3. Android应用中使用AsyncHttpClient来异步网络数据(转载)
  4. SQL时间戳的使用
  5. C# winForm 窗体闪烁问题
  6. yum node.js
  7. VHDL数据类型转换
  8. 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
  9. Java和Flex整合报错(三)
  10. 传统定时器技术 Timer and TimerTask
  11. 第29月第18天 mac evpp环境
  12. GNU C和C99标准中的可变参数宏(variadic macros)
  13. 特征选择 (feature_selection)
  14. 08-java学习-数组-增强for循环-数组与方法-main函数参数
  15. tableview 选中一行后,不显示选中颜色
  16. SimpleDateFormat格式化日期以及日期的相关操作
  17. 20145313张雪纯 《Java程序设计》第4周学习总结
  18. IOS UI-模态视图
  19. ios View之间的切换 屏幕旋转
  20. python3----函数(map)

热门文章

  1. linux进程间通信-(转自 临水)
  2. C语言关于指针函数与函数指针个人理解
  3. 血缘关系分析工具SQLFLOW--实践指南
  4. system verilog内建数据类型
  5. 微信小程序setdata修改数组或对象
  6. 高频访问SQLite数据库
  7. RedisPool
  8. Python+Selenium - windows安全中心的弹窗(账号登录)
  9. 利用NVIDIA-NGC中的MATLAB容器加速语义分割
  10. TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成