rust - For循环不按顺序打印哈希图
问题描述
我无法弄清楚为什么这没有按顺序打印哈希图。分配键时是否以这种方式保存?用肉眼看来,它似乎是随机的。这对 Rust 来说正常吗?
use std::collections::HashMap;
use rand::Rng;
fn main() {
let mut board = HashMap::new();
for n in 0..99 {
board.insert(n,0);
}
// board.insert(1, 0);
for (key,value) in &board {
println!("{}: {}", key, value);
}
}
输出:
21: 0
15: 0
90: 0
10: 0
52: 0
92: 0
32: 0
61: 0
91: 0
50: 0
28: 0
93: 0
64: 0
72: 0
75: 0
95: 0
98: 0
89: 0
57: 0
88: 0
9: 0
85: 0
87: 0
24: 0
29: 0
37: 0
19: 0
16: 0
44: 0
51: 0
79: 0
53: 0
73: 0
11: 0
7: 0
59: 0
62: 0
3: 0
74: 0
14: 0
96: 0
34: 0
40: 0
23: 0
86: 0
49: 0
82: 0
54: 0
80: 0
22: 0
31: 0
60: 0
76: 0
12: 0
0: 0
2: 0
97: 0
83: 0
27: 0
33: 0
69: 0
26: 0
46: 0
68: 0
43: 0
71: 0
58: 0
77: 0
17: 0
5: 0
35: 0
65: 0
56: 0
20: 0
48: 0
1: 0
13: 0
30: 0
4: 0
41: 0
55: 0
45: 0
25: 0
47: 0
63: 0
66: 0
6: 0
67: 0
38: 0
70: 0
81: 0
84: 0
39: 0
18: 0
42: 0
8: 0
78: 0
36: 0
94: 0
解决方案
哈希映射的目的不是保持插入键的顺序。它用于快速数据查找。这个问题 可能会帮助您找到解决方案
推荐阅读
- java - 如何获取不同时区java的特定日期和时间时间戳?
- android - 如何在不指定类型参数的情况下扩展 kotlin 泛型类以允许任何子类型用于回收站视图?
- android - 货币的 NumberFormat 在不同的 android 版本上为相同的语言环境返回不同的值
- flutter - 如何在代理后面的 Powershell 中使用 Flutter?
- c++ - 使用 msvc 15 在 Qt5.13 中编译 CUDA 代码
- wordpress - revslider 预加载密钥请求错误?
- schema - 架构未指定类型
- ajax - asp.net核心用ajax发送formfile,我不能在控制器中归档
- c# - 尽管我给出了一些偏移量,但我的游戏对象仍然紧挨着生成
- c# - 单独运行子进程时会影响原始dll