Set集合
特点: 无序 集合中的元素不重复(是没有下标的,对比map来说,只有值,没有键)
HashSet第一个特点:
hashset具有去重功能
例: 创建一个hashset 保存 a,a,b
去重且无序(结果并不是按照输出顺序打印)!!
注意: 打印对象不会自动去重 需要重写equals和hashcode方法
去重系统类的对象时不用重写
去重: 当添加到Set的对象 HashCode码不相同时 不会调用equals方法,对象直接存到Set集合中
hashset相同时 才会调用equals方法 查看是否是同一个对象(是否重复) 是---则无法存入
Person1.java
package sample;
import java.util.Objects;
public class Person1 {
public String name;
public int age;
public Person1(String name,int age){
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person1{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if(this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person1 person1 = (Person1) o;
return age == person1.age &&
Objects.equals(name, person1.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
HashSet<Person1> hashSet = new HashSet<Person1>();
hashSet.add(new Person1("科比"