我有一个树形图,它以字符串作为键和整数的arraylist作为值。我在树形图中添加了两个值。当我向树形图添加第一个值时它是正确的。添加第二个值时,将更改与第一个键关联的值。两个键都指向同一个arraylist。
while (resultSet.next()) {
firstName = resultSet.getString(1);
lastName = resultSet.getString(2);
scores.add(Integer.parseInt(resultSet.getString(4)));
while (resultSet.next()) {
String firstName1 = resultSet.getString(1);
String lastName1 = resultSet.getString(2);
if (firstName1.equalsIgnoreCase(firstName) && lastName1.equalsIgnoreCase(lastName)) {
scores.add(Integer.parseInt(resultSet.getString(4)));
} else {
resultSet.previous();
break;
}
}
if (!studentScores.containsKey(firstName + lastName)) {
studentScores.put(firstName + lastName, scores);
}
for (int i = 0; i < scores.size(); i++) {
scores.remove(i);
}
}
答案 0 :(得分:1)
当您为firstName + lastName组合中的每一个添加并删除相同的数组列表时,将替换值。
用score = new ArrayList();
替换for循环可以解决问题。