我有一个 HashMap,我想在每次获得迭代器时以不同的随机顺序迭代它们的键值对。从概念上讲,我想在调用迭代器之前“洗牌”地图(或者如果你愿意,“洗牌”迭代器)。
我有两个选择:
1)使用 LinkedHashMap 的方法并在内部保留条目列表,将其就地打乱并在调用迭代器时返回该视图。
2) 取 map.entrySet(),构造一个 ArrayList 并在其上使用 shuffle()。
虽然这两种方法看起来和我很相似,但我期待非常大的 HashMap,所以我真的很关心细节和内部结构,因为我真的不能浪费内存或计算。