我有一个HashMap, 我想每次获取迭代器时按不同的随机顺序遍历键值对。从概念上讲,我想在调用迭代器之前 "洗牌" 映射表(或者如果您愿意,可以 "洗牌" 迭代器)。
我有两个选项: 1) 使用LinkedHashMap的方法,在内部保留条目列表,在调用迭代器时进行原地洗牌并返回视图。 2) 获取 map.entrySet(),构造ArrayList并使用shuffle()函数。
虽然这两种方法在我看来非常相似,但我期望有非常大的HashMap,因此我真的很关心细节和内部实现,因为我不能浪费内存或计算能力。
我有两个选项: 1) 使用LinkedHashMap的方法,在内部保留条目列表,在调用迭代器时进行原地洗牌并返回视图。 2) 获取 map.entrySet(),构造ArrayList并使用shuffle()函数。
虽然这两种方法在我看来非常相似,但我期望有非常大的HashMap,因此我真的很关心细节和内部实现,因为我不能浪费内存或计算能力。