java HashSet添加自定义类

Hashset添加自定义类对象的时候,能实现当元素重复时,将该元素与hashset里的那个元素叠加吗。
比如Student类 里面有id grades(都是String类型)当id重复时 将第二个grades加到第一个grades后面

你想实现的效果:同一个学生有两个成绩的时候,这两个成绩可以合并?
如果是这个,实现不了
去重是重复的元素不会放到集合中,而且这个重复的判断条件有时还需要自己定义


import java.util.HashSet;

/**
 * 对象去重,需要重写 hashcode 和 equals 方法
 *
 * @Author: Negen
 * @Date: 2022/04/07/16:26
 * @Description:
 */
public class Demo {
    public static void main(String[] args) {
        Student zs = new Student("123", "90");
        Student ls = new Student("123", "89");
        Student w5 = new Student("456", "90");

        HashSet<Student> students = new HashSet<>();
        students.add(zs);
        students.add(ls);
        students.add(w5);

        System.out.println(students.size());
        students.forEach(student -> System.out.println(student.toString()));
    }
}

class Student{
    String id;
    String grade;

    Student(String id, String grade){
        this.id = id;
        this.grade = grade;
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof Student))return false;
        Student stuObj = (Student) obj;
        return this.id.equals(stuObj.getId());
    }

    @Override
    public int hashCode() {
        return this.id.hashCode();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    @Override
    public String toString() {
        return String.format("[id=%s,grade=%s]", id, grade);
    }
}