Java 树映射值被覆盖

Java 树映射值被覆盖,java,treemap,Java,Treemap,我有一个树形图,其中字符串作为键,整数数组列表作为值。我向树映射添加了两个值。当我向树映射添加第一个值时,它是正确的。当我添加第二个值时,与第一个键关联的值将发生更改。两个键都指向同一个arraylist while (resultSet.next()) { firstName = resultSet.getString(1); lastName = resultSet.getString(2); score

我有一个树形图,其中字符串作为键,整数数组列表作为值。我向树映射添加了两个值。当我向树映射添加第一个值时,它是正确的。当我添加第二个值时,与第一个键关联的值将发生更改。两个键都指向同一个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);
            }
        }
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));
}否则{
resultSet.previous();
打破
}
}
如果(!studentScores.containsKey(名字+姓氏)){
学生分数。输入(名字+姓氏,分数);
}
对于(int i=0;i
当您为每个firstName+lastName组合添加并删除相同的数组列表时,值将被替换


score=new ArrayList()替换for循环
应该可以解决这个问题。

您能提供最简单的代码和演示问题的最小源数据集吗?例如,如果数据库内容没有导致问题,请删除它。如何实际调试它。1)
resultSet.previous()有什么意义?2) 而不是从
分数中删除所有项目
do
scores=new ArrayList()我删除了部分代码。很抱歉:)我不认为可以进一步删除任何代码,因为更改树映射涉及到所有内容:)如果您的键共享相同的数组列表,那么对该列表的修改将影响两个键。