第一篇:Java——HashSet 的简单了解与使用

时间:2019-01-17
本文章向大家介绍第一篇:Java——HashSet 的简单了解与使用,主要包括第一篇:Java——HashSet 的简单了解与使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Set的特点:不包含重复元素

HashSet如何保证元素唯一性的:通过重写hashcode();与equals();方法

HashSet底层数据结构:哈希表,数组+链表(JDK1.8之后引入红黑树,即底层数据结构为数组+链表+红黑树:当链长达到8之后,转为红黑树存储)

例1:创建一个HashSet存入数据并遍历集合:

    public static void main(String[] args) {
   	 	//新建一个HashSet集合,泛型为String类型
        HashSet<String> hs = new HashSet<>();
        //向集合中添加元素
        hs.add("a");
        hs.add("b");
        hs.add("c");
        hs.add("d");
        hs.add("e");
        hs.add("f");
        //利用for循环遍历集合
        for (String h : hs) {
            System.out.println(h);
        }
    }

例2:存储自定义对象到Hash集合中

——新建Student类
public class Student {
    //创建私有的name与age
    private String name;
    private int age;
    
    //提供空参构造、有参构造
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
	//	提供set/get方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
	//重写toString方法
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
——新建主类Test
public class Test {
    public static void main(String[] args) {
    	//新建HashSet集合,传入Student类型
        HashSet<Student> set = new HashSet<>();
        //向集合中添加元素
        set.add(new Student("张三",20));
        set.add(new Student("李四", 29));
        set.add(new Student("王五", 80));
        set.add(new Student("赵六", 26));
        //遍历集合
        for (Student student : set) {
            System.out.println(student);
        }
    }
}