gpt4 book ai didi

java - 在 while 循环内将 ArrayList 添加到 TreeMap

转载 作者:行者123 更新时间:2023-12-02 13:48:40 24 4
gpt4 key购买 nike

我正在从数据库中的表中检索数据,并将整行添加到 TreeMap 中。

我使用以下代码:

ArrayList<String> listaValores = new ArrayList();
TreeMap<Integer, ArrayList> tmValores = new TreeMap<>();

(...)

    while (rs.next()) 
{
listaValores.clear();
for(int i=2; i<=ncolunas; i++)
{
listaValores.add(rs.getString(i));
}
tmValores.put(rs.getInt(1), listaValores);
}

我的 TreeMap 键插入得很好,但值总是重复作为 SELECT * FROM Table 查询的结果最后一行的值。

如果我的 table 是:

id | name | last name | 
1 | joe | lewis |
2 | mark | spencer |
3 | mike | carter |
4 | duke | melvin |

我的TreeMap包含:

1=> duke, melvin  
2=> duke, melvin
3=> duke, melvin
4=> duke, melvin

而不是(如我想要的)

1=> joe, lewis 
2=> mark, spencer
3=> mike, carter
4=> duke melvin

谁能指出问题出在哪里吗?

最佳答案

我相信您必须重新分配listaValores的值。

简单地改变

 listaValores.clear();

 listaValores = new ArrayList<String>();

关于java - 在 while 循环内将 ArrayList 添加到 TreeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696479/

24 4 0