TreeMap 值被覆盖
TreeMap values getting overridden
我有一个树状图,它以字符串作为键,以整数数组列表作为值。我在树图中添加了两个值。当我将第一个值添加到树状图时,它是正确的。当我添加第二个值时,与第一个键关联的值会发生变化。两个键都指向同一个数组列表。
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);
}
}
当您为每个 firstName+lastName 组合添加和删除相同的数组列表时,值将被替换。
用 score = new ArrayList();
替换 for 循环应该可以解决问题。
我有一个树状图,它以字符串作为键,以整数数组列表作为值。我在树图中添加了两个值。当我将第一个值添加到树状图时,它是正确的。当我添加第二个值时,与第一个键关联的值会发生变化。两个键都指向同一个数组列表。
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);
}
}
当您为每个 firstName+lastName 组合添加和删除相同的数组列表时,值将被替换。
用 score = new ArrayList();
替换 for 循环应该可以解决问题。