HashSet、HashMap和Hashtable区别
来源:互联网 发布:法国大餐 知乎 编辑:程序博客网 时间:2024/06/03 18:39
这篇博客的知识有点杂,有耐心的可以读下去
1.HashSet是一个Set集合的实现类,HashMap和Hashtable是Map集合的子类
2.HashSet和HashMap、Hashtable底层都是通过hash表来存储元素。
也就是通过hash算法原定元素的存储位置。
但是HashMap和Hashtable通过hash表存储的是它的key。
而HashSet存储的是它的元素。(因为set集合不是key-value对)
关于HashSet,大家可以参考我的另一片博客:
JAVA集合之—TreeSet、HashSet、EnumSet
3.效率相关的。
常常会有面试题会问:谈谈HashMap和Hashtable的区别?
HashMap和Hashtable底层原理很相似。所以效率是差不多的。但是HashMap比Hashtable速度更快一点。因为,Hashtable是一个比较老的类,而且它是线程安全的类。
而HashMap是线程不安全的类。但是我们通常还是会选用hashMap,如果需要线程安全的情况,则可以是用Collections工具来来操作
比如
Map map = Collections.synchronized(new HashMap());
这里讲一个Collections工具类的作用。
它可以帮助我们遍历集合,对集合元素操作,做重要的是,它可以帮我们把线程不安全的类编程线程安全的类。
我们可以通过Collections工具类来包装我们需要用到的集合
例如:
Collection c = Collections.synchronized(new ArrayList());List list = Collections.synchronized(new ArrayList());Set s = Collections.synchronized(newHashSet()):Map map = Collections.synchronized(new HashMap());
这有点类似迁移篇博客:
中的ArrayList和Vector的区别
JAVA集合之—LinkedList、ArrayList与Vector
这里额外补充一个集合TreeMap集合。
它的相率比HashMap和Hashtable都低很多。因为TreeMap集合的元素的key要通过红黑树算法来排序。所以TreeMap集合的元素默认的key是已经进行排序过的。
- Hashtable、HashMap和HashSet区别
- HashSet、HashMap和Hashtable区别
- HashMap, HashTable, HashSet区别
- Hashtable HashMap HashSet 区别
- HashMap,HashTable,HashSet区别
- HashMap,HashTable,HashSet区别
- hashmap,hashtable,hashset区别
- HashMap,HashTable,HashSet区别
- Hashmap,Hashtable,Hashset区别
- hashmap,hashset,hashtable区别
- HashMap、HashSet、HashTable区别
- HashMap、HashTable、HashSet区别
- HashMap、HashTable、HashSet区别
- hashMap、hashSet、hashtable区别
- HashMap HashTable HashSet区别
- hashset,hashmap,hashtable区别
- hashset,hashmap,hashtable区别
- HashMap和Hashtable及HashSet的区别
- 【年中总结】——Never lose hope ,Never give up
- 最近在进行web前端学习
- Java 提高(4)----- 异常 Logger
- 利用SSE计算向量点乘simd_dot
- linux基本操作命令
- HashSet、HashMap和Hashtable区别
- 应用内切换主题有哪些方案可以实现
- 网络流24题-12
- 那些年、一起追过的Spring--(1)----初识Spring
- Hive使用mysql作为存储引擎
- adb无法连接android手机的问题
- 【解耦Excel导出服务】开发日志
- 人机交互软件展示
- 2.面试题目汇总-JavaWeb篇