HashSet全面说明

Set接口实现类-HashSet

HashSet的全面说明

  1. HashSet实现了Set接口
  2. HashSet实际上是HashMap
    HashSet全面说明
  3. 可以存放null值,但是只能有一个null
  4. HashSet不保证元素是有序的,取决于hash后,在确定索引的结果。(即不保证存放元素的顺序和取出的顺序一致)
  5. 不能有重复元素/对象。
  • HashSet_类
import java.util.HashSet;
import java.util.Set;

public class HashSet_ {
    public static void main(String[] args) {
        Set hashSet = new HashSet();

        //HashSet可以存放null,但是只能有一个null
        hashSet.add(null);
        hashSet.add(null);

        System.out.println("hashSet = " + hashSet);
    }
}
  • HashSet01类
import java.util.HashSet;

@SuppressWarnings({"all"})
public class HashSet01 {
    public static void main(String[] args) {
        HashSet set = new HashSet();

        //1.在执行add方法后,会返回一个boolean值
        //2.如果添加成功,返回true,否则,返回false
        //3.可以通过remove指定删除哪个对象
        System.out.println(set.add("test1"));//T
        System.out.println(set.add("test2"));//T
        System.out.println(set.add("test1"));//F
        System.out.println(set.add("test3"));//T
        System.out.println(set.add("test4"));//T

        set.remove("test1");

        System.out.println("set = " + set);//3个

        //
        set = new HashSet();

        System.out.println("set = " + set);

        //4.HashSet不能添加相同的元素/数据
        set.add("test1");//添加成功
        set.add("test1");//加入不了
        set.add(new Dog("test1"));//OK
        set.add(new Dog("test1"));//Ok

        System.out.println("set = " + set);

        set.add(new String("wsh"));//OK
        set.add(new String("wsh"));//加入不了

        System.out.println("set = " + set);
    }
}

class Dog{
    //定义Dog类
    private String name;

    public Dog() {
    }

    public Dog(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                '}';
    }
}
上一篇:HashSet扩容机制


下一篇:79.set接口的特征与介绍;HashSet底层存储数据结构介绍;