For me, Map.copyOf() is worst, it is designed to do defensive copy, but you can not use it to do a defensive copy because the user of your library may rely on the Map iteration order..
Rémi > From: "Kevin Bourrillion" <[email protected]> > To: "Stephen Colebourne" <[email protected]>, "core-libs-dev" > <[email protected]> > Sent: Friday, September 5, 2025 5:22:47 PM > Subject: Re: StableValue and non-deterministic iteration order > 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 <[email protected]> on behalf of Stephen > Colebourne <[email protected]> > Date: Friday, September 5, 2025 at 12:13 AM > To: core-libs-dev <[email protected]> > 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
