java - 在Java中将元素放入HashMap
问题描述
为什么HashMap
返回值乱序?
public class Main {
public static void main(String[] args) {
Map<Integer, String> hashMap = new HashMap<>();
hashMap.put(40, "40");
hashMap.put(10, "10");
hashMap.put(30, "30");
hashMap.put(20, "20");
System.out.println(hashMap);
}
}
输出:
{20=20, 40=40, 10=10, 30=30}
我期望:
{40=40, 10=10, 30=30, 20=20}
解决方案
AHashHap
是无序的。因此,键值对将由 表示没有特定的顺序toString()
。
的toString()
方法HashMap
,由 调用System.out.println
,被实现以将地图表示为字符串,如下所示:
{key0=value0, key1=value1,..., keyN=valueN}
该顺序可以但不保证是插入顺序。
推荐阅读
- c++ - unordered_map 的 Unordered_map 与对键 C++ 的自定义散列函数?
- python - Pandas:使用 groupby 然后 shift 的更快方法?
- regex - 如何删除ip地址和端口前后的所有内容?
- r - R取消嵌套多列
- gridjs - 如何在每秒更新数据的情况下使用 Grid.js
- react-native-gifted-chat - React Native Gifted Chat:磁贴(~)是什么意思?如何删除它?
- docker - Docker通过主机模式动态暴露端口,但端口无法从外部访问
- html - HTML忽略特定标签的容器类
- google-apps-script - 根据 Google 表格中的名称列表创建新标签
- performance - 我应该为 OpenCV 安装 Lapack 和 Eigen 吗?