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

Reply via email to