StableValue and non-deterministic iteration order

Ryan Ernst ryan at iernst.net
Fri Sep 5 15:45:14 UTC 2025


The iteration order is deterministic. The problem raised in that thread was that the seed is hidden and uncontrollable. 

IMO if you want a Map that has order, use a LinkedHashMap (or the idea is SequencedMap.of is also appealing). However, even if you don’t want to depend on iteration order, sometimes there are bugs that unintentionally depend on that order, so it would still be great to control the seed in order to have reproducibility in tests. 

> On Sep 5, 2025, at 08:23, Kevin Bourrillion <kevin.bourrillion at oracle.com> wrote:
> 
> 
> Just as a corroborating data point, it’s banned at my previous company too, and this is a big reason why. Deterministic iteration is a very good thing. (Personal opinion: I’ve come to view non-deterministic iteration as a risky optimization in general, that is usually not called for.)
>  
>  
> From: core-libs-dev <core-libs-dev-retn at openjdk.org> on behalf of Stephen Colebourne <scolebourne at joda.org>
> Date: Friday, September 5, 2025 at 12:13 AM
> To: core-libs-dev <core-libs-dev at openjdk.org>
> Subject: StableValue and non-deterministic iteration order
> 
> 
> In summary, the current Map.of() is a bit of a hand grenade IMO, and
> something I pretty much banned at my previous company. Which is a
> problem given its key role in StableValue.
> 
> Stephen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/core-libs-dev/attachments/20250905/2f4925b7/attachment.htm>


More information about the core-libs-dev mailing list