学生类
因为要保证HashMap元素唯一性,所以需要重写equals方法和hashCode方法。
重写方法:在Student类中按Alt+inster键选择
在选择这个红框中的模板,然后一直点next就行啦
package myCollection;
//学生类
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
if (age != student.age) return false;
return name != null ? name.equals(student.name) : student.name == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + age;
return result;
}
}
HashMap测试类
package myCollection;
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
HashSet<Student> hs=new HashSet<>(); //创建集合对象
Student s1=new Student("李华",20);
Student s2=new Student("李华",20);
Student s3=new Student("张三",21);
Student s4=new Student("李四",32);
//添加元素
hs.add(s1);
hs.add(s2);
hs.add(s3);
hs.add(s4);
//for增强循环
for (Student s:hs){
System.out.println(s.getName()+","+s.getAge());
}
}
}
输出结果