Java的集合是日常开发工作中经常会使用到的工具类,比较高频的是
- ArrayList
- LinkList
- HashMap
- ConcurrentHashMap
这篇文章将会记录日常关于Java集合的一系列问题。
首先要熟悉Java集合框架,如下图。
HashTable与HashMap的区别
- 第一,数据结构不一样,hashtable是数组+链表,hashmap在1.8之后改为了数组+链表+红黑树。
- 第二,hashtable存储数据的时候都不能为null,而hashmap是可以的。
- 第三,hash算法不同,hashtable是用本地修饰的hashcode值,而hashmap经常了二次hash。
- 第四,扩容方式不同,hashtable是当前容量翻倍+1,hashmap是当前容量翻倍。
- 第五,hashtable是线程安全的,操作数据的时候加了锁synchronized,hashmap不是线程安全的,效率更高一些。