On Mon, 9 Oct 2023 20:13:48 GMT, Jamil Nimeh <jni...@openjdk.org> wrote:
>> Do you think we'll lose performance in a meaningful way? One of the >> guarantees of HashSet is constant-time operations. >> >> There is no such guarantee for Set. The number of members is probably small >> enough, relatively speaking, to not affect things much at creation time (and >> we only do this once); however, lookup time (in `engineGetKeySpec` and >> `engineTranslateKey`) might take a small hit if these methods are called >> repeatedly. >> >> Let me know whether you think this is a valid concern. Thanks! > > I think there could be sight timing variations between `HashSet` and whatever > Set implementation is returned by `Set.of()` but creation only happens once > as you stated, and iterations over 20-ish elements just seems like the > variance would be negligible in any real-world use cases. How about changing to use the `HashSet(Collection<? extends E> c)` constructor? First construct a collection with the various algorithms and then construct `validType` w/ this collection. `validType` can be made unmodifiable also since it's read only. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16103#discussion_r1350759168