#面试#面试小技巧之HashMap、HashSet、HashTable的区别?
HashMap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射,数据结构主要是:数组+链表的方式存储,jdk1.8 之后引入了红黑树用来优化链表过长问题。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
HashMap 是无序的,即不会记录插入的顺序。
HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
HashSet
HashSet 实现了 Set 接口,从他的构造函数中可以得知他也是一个HashMap,所以他也是无序的,但是它允许空元素,虽然多个null不会报错,但是由于set的重复判断的条件,HashSet 集合中只会出现一条 null 数据,其他null会被视为重复数据,同时,由于 HashSet 依赖HashMap实现,所以它也是线程不安全的。我们再来看看 HashSet 的几个重要特性。
实现了集合接口
由于 HashSet 实现了 Set 接口,所以 HashSet 不允许出现重复数据。
HashSet 插入的对象无法保证以相同的顺序插入,插入位置由 HashCode 决定。
HashSet 允许出现 null 值。
HashSet 还实现了Serializable和Cloneable接口。
HashTable
HashTable 与HashMap 类似,它们存储的内容都是键值对(key-value)映射,不过 HashTable 不允许将空值作为key或者value,从哈希表中查询或者存储对象时,用作键的对象必须实现 hashCode() 方法和 equails()方法。由于HasTable 的添加操作在方法上加上了 synchronized 同步锁,所以他是线程安全的。HashTable 特点如下
与HashMap相似,但它线程安全。
Hashtable 将键/值对存储在哈希表中。
HashTable 类的初始默认容器是11(HashMap 初始容器为 16 ),loadFactor(装载因子) 0.75。
Hashtable 提供非快速失败的枚举,,而HashMap没有。
三者区别
线程安全性:HashTable 由于加了 synchronized 同步锁,所以他是线程安全的,HashMap与 HashSet 则是非线程安全的。
数据重复:HashSet 由于实现了 Set接口,所以它不允许出现重复的值,HashMap中不允许出现重复的键,但是可以出现重复的值,HashTable也是如此,并且HashTable还不允许将空值作为key或者value。
学霸英语 随堂笔记
莱曼每日英语句子拓展
第248单元
课题: 克隆技术 Clone Technology
1. 小学级
Clone is something like copying.
克隆类似于复制。(速读≤3.7秒)
2. 小学级
Clone is something like copying of plants and animals.
克隆类似于植物和动物的复制。(速读≤4秒)
3.初中级
Clone technology is something like copying of plants and animals.
克隆技术类似于植物和动物的复制。(速读≤5.2秒)
4. 初中级
Clone technology is something like copying of plants and animals with some DNAs.
克隆技术类似于通过 DNA对植物和动物的复制。(速读≤5.9秒)
5. 高中级
Some people believed that clone technology which is something like copying of creatures with some DNAs is an efficient way of protecting endangered species.
一些人认为,类似于通过 DNA对生物进行复制的克隆技术是一种对濒临灭绝的动物进行保护的有效手段。(速读≤11.6秒)
小学级习题:
( )With cloning, we are able to _______an animal.
A. two. B. twice. C. double. D. times
初中级习题:
( )With clone technology, we can save some animal species from ______.
A. deaths. B. extinction
C. disappearance. D. damage
高中级习题:
( )DNA here in the passage means _____ in Chinese.
A.脱氧核糖核酸 B. 双螺旋结构
C. 脂肪酸 D. 碳氢化合物
LEMMEN ENGLISH LANGUAGE STUDIO®
莱曼英语语言工作室★夜读魂俱乐部据《英语学霸,随堂笔记》友情提供,每日午后,日更上传。