(41) 剖析HashSet / 计算机程序的思维逻辑
本节介绍HashSet,它有什么特点,有哪些应用,是如何实现的?......
查看历史文章,请点击上方链接关注公众号。
上节介绍了HashMap,提到了Set接口,Map接口的两个方法keySet和entrySet返回的都是Set,本节,我们来看Set接口的一个重要实现类HashSet。
与HashMap类似,字面上看,HashSet由两个单词组成,Hash和Set,Set表示接口,实现Set接口也有多种方式,各有特点,HashSet实现的方式利用了Hash。
下面,我们先来看HashSet的用法,然后看实现原理,最后我们总结分析下HashSet的特点。
用法
Set接口
Set表示的是没有重复元素、且不保证顺序的容器接口,它扩展了Collection,但没有定义任何新的方法,不过,对于其中的一些方法,它有自己的规范。
Set接口的完整定义为:
与Collection接口中定义的方法是一样的,不过,一些方法有一些不同的规范要求。public interface Set extends Collection {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator iterator();
Object[] toArray();
T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection c);
boolean addAll(Collection c);
boolean removeAll(Collection c);
void clear();
boolean equals(Object o);
int hashCode();
}
添加元素
如果集合中已经存在相同元素了,则不会改变集合,直接返回false,只有不存在时,才会添加,并返回true。boolean add(E e);
批量添加
[quote]boolean addAll(Collection
关注 老马说编程
微信扫一扫关注公众号