Java中的hash结构总结:HashSet、HashMap、HashTable
Java中常用的Hash结构只有HashSet和HashMap两类,HashTable是HashMap的一种子类,下面对它们的继承关系,接口方法进行总结。
Java集合框架概述
-
因为三者都是Java集合体系中的一部分,所以先介绍java的集合框架
-
HashSet是Collection接口中Set中的一部分,所以这里展示Collection的接口继承树
-
HashMap和HashTable是Map接口中的一部分,这是Map的接口继承树
一、HashSet部分
1.HashSet接口方法(也就是Collection的接口方法)
因为 Set接口是Collection的子接口,set接口没有提供额外的方法
- 添加
add(Object obj)
addAll(Collection coll)
- 获取有效元素的个数
int size()
- 清空集合
void clear()
- 是否是空集合
boolean isEmpty()
- 是否包含某个元素
boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象
boolean containsAll(Collection c:也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。
- 删除
boolean remove(Object obj):通过元素的equals方法判断是否是要删除的那个元素,只会删除找到的第一个元素 boolean removeAll(Object coll):去当前集合的差集
- 取两个集合的交集
boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c
- 集合是否相等
boolean equals(Object obj)
- 转成对象数组
Object[] toArray()
- 获取集合对象的哈希值
hashCode()
- 遍历
iterator():返回迭代器对象,用于集合遍历
2.HashSet特点
- HashSet 是 Set 接口的典型实现,大多数时候使用 Set 集合时都使用这个实现类
- HashSet 按 Hash 算法来