在这种情况下应该使用哪个集合?

sat*_*esh 2 java

任何人都可以建议我在这种情况下使用哪个集合:

每位学生都有一份付款记录,其中包含学生/家庭的付款详情.系统应确保没有针对学生帐户的重复付款.该计划应该能够为学生添加付款详细信息,并确保没有注册重复的付款细节.

aio*_*obe 5

也许一个Map<Student, Set<Payment>>会做.

(A Set不允许重复.)

如果你equals正确覆盖(和hashCode)你可以做类似的事情

Map<Student, Set<Payment>> studentPayments =new HashMap<Student, Set<Payment>>();

public void addStudentPayment(Student student, Payment payment) {

    if (!studentPayments.containsKey(student))
        studentPayments.put(student, new HashSet<Payment>());

    if (studentPayments.get(student).add(payment))
        System.out.println("Payment was added");
    else
        System.out.println("Duplicate found. Payment not added.");
}
Run Code Online (Sandbox Code Playgroud)