On Thu, 10 Mar 2022 22:01:49 GMT, Stuart Marks <[email protected]> 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