On Thu, 10 Mar 2022 22:01:49 GMT, Stuart Marks <sma...@openjdk.org> wrote:
>> @stuart-marks please have a look in changes in the latest commit, I think >> we'd better to manually create references for keys like that. > > Good point about WeakHashMap! I don't think we need a separate table. Since > the value is held by a strong reference, using the same reference as the key > will prevent the key's weak reference from being cleared. I'd suggest this: > > for (int i = 0; i < n; i++) { > Integer obj = i; // prevent WeakHashMap from clearing keys > map.put(obj, obj); > } Heads up here! java.lang.Integer is specified as a value based class and should not be used where identity is needed. https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/doc-files/ValueBased.html I don't have a ready suggestion, but be forewarned that this use is not considered valid. ------------- PR: https://git.openjdk.java.net/jdk/pull/7431