Why the order of elements in HashSet's keySet changes from run to run?

后端 未结 3 1032
抹茶落季
抹茶落季 2021-01-13 04:42

I have some code utilizing standard Java collections: arrays, ArrayDeques, HashMaps, Lists, HashSets. My code is expected to be deterministic: the hash codes of all the elem

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-13 05:13

    Just copying here what is already included in the question. A quick look through the sources showed that in 1.7, HashMap indeed has non-deterministic behavior, and each instance seeds the hashes of the elements with some random value. In 1.8, the implementation was changed, and the randomization doesn't seem to be there any more.

提交回复
热议问题