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 循环应该可以解决问题。