例如,我输入3个字符串:Hagzou Hugzou Jigxng作为HashMap的键,
但是当我按键遍历HashMap时,顺序已经改变:hugzou Hagzou jigxng。
是否可以确保在输出键的时候不改变顺序?
下面是我的代码:
HashMap< String, Integer > distance = new HashMap< String, Integer >();
Scanner input = new Scanner(System.in);
while (true) {
String city = input.next();
if (city.equals("###"))
break;
distance.put(city, null);
}
for (String city : distance.keySet()) {
System.out.println(city);
}
您可以使用LinkedHashMap
:
哈希表和链表实现的映射接口,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链表。这个链表定义了迭代顺序,通常是键插入映射的顺序(insertion-order)。请注意,如果将键重新插入映射中,则插入顺序不受影响。(如果在m.ContainsKey(k)在调用前立即返回true时调用m.put(k,v),则将键k重新插入映射m中。)
换句话说,虽然LinkedHashMap
可以像常规的HashMap
一样通过哈希代码访问条目,但它还维护一个双链表,并维护条目插入的顺序。这样,当您使用它的迭代器时,您将以插入它们的相同顺序获得这些项。
问题内容: 如何在JSP中循环通过? 问题答案: 就像使用普通Java代码一样。 但是,(JSP文件中的原始Java代码,那些东西)被认为是不明智的做法。我建议安装JSTL(只需将JAR文件放入其中,并在JSP顶部声明所需的taglib)。它有一可以迭代的标签Map。每次迭代都会给你带来反过来,而反过来又具有和方法。 这是一个基本示例: 因此,你的特定问题可以通过以下方式解决: 你需要将Servl
本文向大家介绍vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?相关面试题,主要包含被问及vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?时的应答技巧和注意事项,需要的朋友参考一下 1、会先判断是否有iterator接口,如果有循环执行next()方法 2、没有iterator的情况下,会调用Object.keys()方法,在不同浏览器中,JS引擎不能保证输出顺序
问题内容: 有一个现有的函数以下面的结尾,其中是一个字典: 返回给定字典的未排序迭代器。我想返回一个遍历按 key 排序的项目的迭代器。我怎么做? 问题答案: 尚未对此进行广泛的测试,但是可以在Python 2.5.2中使用。 如果您习惯于使用迭代器代替迭代器,那么上面的解决方案仍然可以使用 在Python 3.x中,使用代替返回迭代器。
问题内容: 迭代中的项目的最佳方法是HashMap什么? 问题答案: 像这样遍历: 了解更多有关。
问题内容: 我正在使用Runnable每秒自动从玩家的冷却时间中减去20,但是我不知道如何在迭代过程中替换值。如何更新每个键的值? 问题答案: 使用Java 8: 使用Java 7或更旧版本: 您可以迭代条目并更新值,如下所示:
问题内容: 我想做一个Java游戏。首先,程序要求玩家的数量。之后,它询问他们的名字。我将他们的名字放在ID和分数中。在游戏结束时,我会计算分数,然后将其放在(特定名称的特定分数)中。有谁知道如何做到这一点?这是我的代码: 玩家: 主要: 有谁知道我最后如何打印,例如: 更新: 我主要是这样做的(正如Jigar Joshi建议的那样) 当我将球员的两个名字“ a”和“ b”放进去时,它会显示“分数