当前位置: 首页 > 面试题库 >

如何避免将物品放入Java HashMap中时对其进行重新排序

益光亮
2023-03-14
问题内容

我正在创建一个新的Map并将字符串推入其中(没什么大不了的)-但是我注意到随着Map的增长,字符串正在重新排序。是否可以停止这种重新排序,以便地图中的项目保持其放入的顺序?

Map<String,String> x = new HashMap<String, String>();
x.put("a","b");
x.put("a","c");
x.put("a","d");

x.put("1","2");
x.put("1","3");
x.put("1","4");

//this shows them out of order sadly...
for (Map.Entry<String, String> entry : x.entrySet()) {
    System.out.println("IN THIS ORDER ... " + entry.getValue());
}

问题答案:

如果您关心订单,可以使用SortedMap。实现该接口的实际类(至少在大多数情况下是)TreeMap。或者,LinkedHashMap在仍然使用基于哈希表的容器的同时,也维持其顺序。



 类似资料:
  • 问题内容: 我有一个,我需要能够对列进行重新排序。但是,我希望第一列不能重新排序。我使用以下命令来启用重新排序: 现在可以对列进行重新排序,包括不需要的第一列。有什么方法可以锁定第一列? 我已经看到一些使用两个表的解决方案,其中第一列在单独的表中,但是也许有更好/更简单的方法。 问题答案: 我认为您需要重写中的方法。在类有一个方法,你应该能够看到,以确定它是否是你的固定列,然后你应该能够取消事件。

  • 如何对值进行排序,并将其直接按降序放入for循环本身的数组中,而不是在for循环之后使用sorted函数?

  • 我有这个nodeJS代码,但每当我发布数据时,最新的数据都会添加到末尾而不是开始。我试着添加

  • 问题内容: JTabbedPane正是我要达到的目的。我的水平空间非常有限,所以我的Tab可以叠放,这完全可以。 但是默认行为是,如果用户单击选项卡,则* 选项卡将重新排序,以使活动的选项卡变为低位 * s。从理论上看,非常直观和合乎逻辑的内容是实际使用中的噩梦,因为用户会松散地了解“哪个是哪个”。一次又一次地告诉我,这简直是令人困惑。 我想应该有可能重写UI的某些方法来避免这种行为(并且我不在乎

  • 问题链接1链接2链接3 从上面的链接,我希望我遵循的答案是被接受的。但我还是有例外。我正在使用Java 6。 代码: 堆栈跟踪:

  • 问题内容: 我目前正在开发一种微分运算符,可以将其以矩阵形式放置。在这种情况下,创建对象时列表的顺序非常重要,以确保仅在需要时才执行区分。 问题是,完成以下操作后: 之所以返回,是因为进行了一些重排。如何避免被排序? 问题答案: 为什么arg的顺序对正确来说很重要? 防止这种情况的唯一方法是将符号设置为不可交换的()。SymPy对象通过比较进行比较,因此要正常工作,必须对args进行规范排序。有一