原文:https://blog.csdn.net/HKDxiaofan/article/details/78857504?utm_source=copy
Set 接口实现类中的HashSet,TreeSet。
集合中不允许出现重复,去重的实现
1.HashSet
a.基本数据类型 HashSet是由哈希算法来实现的,在一个对象要被添加到集合中的时候,会被系统分配一个哈希值,使用的是hashCode()方法,系统首先会根据这个对象的哈希值去和集合中的对象去比较,
如果哈希值不同就可以加入,
如果相同,就去比较俩字符串的值是否一样,使用equals()方法,如果一样就不能加入,
此时,重复的对象是无法加入HashSet的。
b.引用类型数据 当我们加入的对象是数据类型不是基本数据类型(int,char,double 等),
下面我们在HashSet集合中添加三个Student类的对象
HashSet<Student> hashSet = new HashSet<>();
hashSet.add(new Student("张三", 18));
hashSet.add(new Student("李四", age));
hashSet.add(new Student("张三", 18));
System.out.println(hashSet);
输出的结果是:
[Student [name=张三, age=18], Student [name=张三, age=18], Student [name=李四, age=19]
可以看