Search code examples
rusthashmap

For loop not printing hash map in order


I cannot figure out why this isn't printing the hash map in order. Does it save this way when assigning keys? With the naked eye it seems to be randomized. Is that normal 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);
    }
}

Output:

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

Solution

  • A hashmap's purpose isn't to keep the order in which a key was inserted. It is used for fast data lookup. This question might help you find a solution