(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接口的完整定义为:

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();
}

与Collection接口中定义的方法是一样的,不过,一些方法有一些不同的规范要求。

添加元素

boolean add(E e);

如果集合中已经存在相同元素了,则不会改变集合,直接返回false,只有不存在时,才会添加,并返回true。

批量添加

[quote]boolean addAll(Collection


    关注 老马说编程


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册