谁能建议我在这种情况下使用哪个集合:
每个学生都有一个付款历史记录,其中包含学生/家庭的付款详情。系统应确保学生帐户没有重复付款。该程序应该能够为学生添加付款详细信息,并确保不会注册重复的付款详细信息。
最佳答案
也许是 Map<Student, Set<Payment>>
会做。
( 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.");
}
https://stackoverflow.com/questions/7311934/