gpt4 book ai didi

java - 保留 HashMap 中的插入顺序和教程示例

转载 作者:行者123 更新时间:2023-12-01 12:30:27 27 4
gpt4 key购买 nike

根据这个问题:How to preserve insertion order in HashMap?

HashMap makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.

但是我有一个关于 Oracle 教程的问题

public void updateCoffeeSales(HashMap<String, Integer> salesForWeek)
throws SQLException {
...
try {
...
for (Map.Entry<String, Integer> e : salesForWeek.entrySet()) {
updateSales.setInt(1, e.getValue().intValue());
updateSales.setString(2, e.getKey());
updateSales.executeUpdate();
updateTotal.setInt(1, e.getValue().intValue());
updateTotal.setString(2, e.getKey());
updateTotal.executeUpdate();
con.commit();
}
} catch (SQLException e ) {
...
} finally {
...
}

来自这里:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

他们如何知道 updateSales 和 updateTotal 的值不会混合?

最佳答案

文档讨论了键值对的相对顺序。如果您添加项目

 a:b
c:d
e:f

对于 HashMap ,您可以在迭代时以任意顺序获取它们。例如,您可以获得

 c:d
a:b
e:f

但是,这种重新排序不能分解这些对。换句话说,a 将保持与 b 配对 - 它不会被重新排序以对应于 df .

当您迭代 map 的 entrySet() 时,您会得到一个无序列对的列表。然而,这些对本身仍然是成对的:如果为给定键设置了某个值,则无论迭代顺序如何,它都将作为该键的对返回。由于也不应该依赖数据库表中项目的自然顺序,因此特定的插入顺序没有区别。

关于java - 保留 HashMap 中的插入顺序和教程示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com