首页技术文章正文

Java培训:HashSet集合

更新时间:2022-11-01 来源:黑马程序员 浏览量:

IT培训班

  HashSet是Set接口中的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。下面通过一个案例演示HashSet集合的用法,如文件6-7所示。

  文件6-7 Example07.java

import java.util.*;
public class Example07 {
    public static void main (String[] args) {
        Hash set = new HashSet ();          // 创建HashSet集合
        set.add("张三");                    // 向该Set集合中添加字符串
        set.add("李四");
        set.add("王五");
        set.add("李四");                   // 向该Set集合中添加重复元素
        Iterator it = set.iterator ();    // 获取Iterator对象
        while (it.hasNext ()) {           // 通过while循环,判断集合中是否有元素
         Object obj = it.next ();         // 如果有元素,就通过迭代器的next()方法获取元素
             System.out.println (obj);
        }
    }
}

  在文件6-7中,第4~8行代码声明了一个HashSet集合并通过add()方法向HashSet集合依次添加了4个字符串;第9行代码声明了一个迭代器对象it;第10~13行代码是通过Iterator迭代器遍历所有的元素并且输出。从打印结果可以看出,取出元素的顺序与添加元素的顺序并不一致,并且重复存入的字符串对象“李四”被去除了,只添加了一次。

  HashSet集合之所以能确保不出现重复元素,是因为它在存入元素时做了很多工作。当调用HashSet集合的add()方法存入元素时,首先调用当前存入对象的hashCode()方法获得对象的散列值,然后根据对象的散列值计算出一个存储位置。如果该位置上没有元素,则直接将元素存入,如果该位置上有元素存在,则会调用equals()方法让当前存入的元素依次与该位置上的元素进行比较,如果返回的结果为false就将该元素存入集合,返回的结果为true则说明有重复元素,将该元素舍弃。

分享到:
在线咨询 我要报名
和我们在线交谈!