On Fri, 24 Mar 2023 21:39:09 GMT, Tagir F. Valeev <[email protected]> wrote:
>> Stuart Marks has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Simplify handling of cached keySet, values, and entrySet views.
>
> src/java.base/share/classes/java/util/LinkedHashMap.java line 1197:
>
>> 1195:
>> 1196: public V computeIfAbsent(K key, Function<? super K, ? extends
>> V> mappingFunction) {
>> 1197: return base.computeIfAbsent(key, mappingFunction);
>
> Again, it's somewhat worrysome that methods like `computeIfAbsent` will
> actually add new nodes to the end of original LinkedHashMap instead of to the
> beginning. Probably not very big deal but looks inconsistent...
Likely, for the first iteration it's possible to remove specializations for
compute*/merge methods and use the default implementation from the `Map`
interface, which will properly insert the new item to the beginning (if we
properly implement reversed `put`). Later it could be optimized if necessary.
What do you think?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/7387#discussion_r1153015878