关于HashSet思考
package com.wzw.service;
import java.util.HashSet;
import java.util.Objects;
public class test {
public static void main(String[] args) {
HashSet<Object> set = new HashSet<>();
Persion persion = new Persion(1001, "叶德安");
Persion persion1 = new Persion(1002, "汪镇威");
set.add(persion);
set.add(persion1);
persion.name="莫凡";
set.remove(persion);
System.out.println(set);
//[Persion{id=1002, name='汪镇威'}, Persion{id=1001, name='莫凡'}]
set.add(new Persion(1001,"莫凡"));
System.out.println(set);
//[Persion{id=1002, name='汪镇威'}, Persion{id=1001, name='莫凡'}, Persion{id=1001, name='莫凡'}]
set.add(new Persion(1001,"叶德安"));
System.out.println(set);
//[Persion{id=1002, name='汪镇威'}, Persion{id=1001, name='莫凡'}, Persion{id=1001, name='叶德安'}, Persion{id=1001, name='莫凡'}]
}
}
class Persion{
int id;
String name;
@Override
public String toString() {
return "Persion{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Persion persion = (Persion) o;
return id == persion.id &&
Objects.equals(name, persion.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
public Persion(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}