HashSet集合介绍

HashSet集合介绍


一、Set接口介绍

Set接口和List接口一样,都是继承自Collection接口,他与Collection接口中的方法基本一致,并没有在Collection接口上进行功能扩充。与List接口不同的是,Set接口中的元素无序,并且都以某种规则保证存入的元素不重复。

二、HashSet集合介绍

HashSet是Set接口的一个实现类,他所存储的元素不能重复,并且元素时无序的。HashSet底层的实现其实是一个HashMap(哈希表)支持。

通过前面的简单介绍,Set和HashSet的特点:
Set:

  1. 不允许存储重复数据
  2. 没有索引,没有带索引的方法,也不能使用普通的for循环

HashSet:

  1. 不允许存储重复元素
  2. 没有索引,没有带索引的方法,也不能使用普通的for循环
  3. 是一个无序集合,存储元素和取出元素的顺序可能不同
  4. 底层是一个哈希表(查询的速度非常快)

这次以add方法举例:

代码如下(示例):

 		java.util.Set<String> set = new HashSet<>();
        //使用add添加数据
        set.add("张三");
        set.add("李四");
        set.add("王五");
        set.add("张三");//重复数据
        //遍历集合,因为没有索引,索引我们不能使用简单的for循环
        //1.迭代器
        Iterator<String> it= set.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

        System.out.println("*********************");
        //2.foreach循环
        for (String i:
             set) {
            System.out.println(i);
        }

注意的是Set集合有两种遍历方式,迭代器和foreach循环,稍后在一下篇会说明哈希值,HshSet集合的存储数据的结构以及原理。

上一篇:HashSet源码分析


下一篇:HashSet集合存储数据的结构(哈希表)