Iteration order of HashSet

后端 未结 9 920
眼角桃花
眼角桃花 2020-11-27 07:32

If every object added to a java.util.HashSet implements Object.equals() and Object.hashCode() in a deterministic fashion, is the iteration order over the HashSet guaranteed

9条回答
  •  眼角桃花
    2020-11-27 08:19

    Wanted to confirm / upvote earlier comments. In short, Do Not Rely on HashSet iteration in consistent order. This can and will introduce bugs in your system.

    We just found and fixed a bug where the iteration order was inconsistent in HashSet even with:

    • Identical insertion order.
    • Objects of a class with a valid equals() and hashCode() method.

    And fixed it by using LinkedHashSet.

    Thanks to the earlier posters :)

提交回复
热议问题