HashSet也是一种容器,它的性质类似于数学中的集合,即具有无序性、互异性。
无序性是指:没有先后顺序,先放和后放没有区别。
互异性是指:集合中的每个元素不相同,如果向HashSet add同一个东西多次,在HashSet内只存一次。
创建HashSet和创建ArrayList类似,需要先import一个类(import java.util.HashSet;),创建HashSet对象的语法是:
HashSet<类名> 对象名 = new HashSet<类名>();
为了更好地理解HashSet容器的性质,我们不妨写些代码来测试一下:
package learnJava;
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String> hs = new HashSet<String>();
hs.add("first");
hs.add("second");
hs.add("third");
hs.add("second");
System.out.println(hs);//HashSet可以使用System.out.println()直接输出
}
}
这段代码首先创建了一个存储String对象的HashSet对象hs,然后向其中依次加入了first、second、third、second。first、second、third是先后加入的,但是根据无序性,HashSet可能不会将它们有序摆放。另外,second加入了两次,根据互异性,HashSet应该只存储second一次。我们来看实验结果是否与我们想的一致。
实验结果:
果然,first、second、third没有按序排放,且second只存一次。
HashSet类也提供了很多方法方便我们管理HashSet,常用的有:
方法 | 功能 |
---|---|
.add() | 添加元素 |
.remove() | 删除元素 |
.size() | 获取容器中元素个数 |
.toArray() | 将容器以数组的形式返回 |
… | … |