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

Reply via email to