TreeMap值被覆盖

时间:2015-03-31 00:08:56

标签: java treemap

我有一个树形图,它以字符串作为键和整数的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);
            }
        }

1 个答案:

答案 0 :(得分:1)

当您为firstName + lastName组合中的每一个添加并删除相同的数组列表时,将替换值。

score = new ArrayList();替换for循环可以解决问题。