gpt4 book ai didi

Java map 问题

转载 作者:行者123 更新时间:2023-12-03 07:21:43 25 4
gpt4 key购买 nike

我有一张 map ,其中包含一些名称和号码

Map<String,Integer> abc = new HashMap<String,Integer>();

效果很好。我可以在其中放入一些值,但是当我在不同的类中调用它时,它会给我错误的顺序。例如:

我放了

abc.put("a",1);
abc.put("b",5);
abc.put("c",3);

Iterator<String> iter = abc.keySet().iterator();

while (iter.hasNext()) {

String name = iter.next();
System.out.println(name);
}

有时返回顺序 (b,a,c),有时返回顺序 (a,c,b)。

这有什么问题吗?当我调用此 map 时是否缺少任何步骤?

编辑:我改成HashMap,结果还是一样

最佳答案

唯一错误的是你的期望。 Map 接口(interface)不保证迭代顺序,而 HashMap 实现基于哈希函数,这意味着迭代顺序基本上是随机的,并且有时会在新元素出现时完全改变已添加。

如果您想要特定的迭代顺序,您有以下选择:

  • SortedMap 与其 TreeMap 实现接口(interface) - 这些保证根据键的自然顺序(或由 Comparator< 强加的顺序)进行迭代顺序 实例)
  • LinkedHashMap 类按照元素添加到 map 的顺序进行迭代。
  • 使用 List 而不是 Map - 这具有明确定义的迭代顺序,您可以对其进行详细影响。

关于Java map 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531231/

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