In addition, I discovered that a few methods, subMap, headMap, tailMap, sequencedKeySet, keySet, can be provided default implementations with covariant overrides. This will bring convenience to both user implementations and API users, and adding covariant override is binary (but not source) compatible; example being LinkedList.
Another aspect is that the SequencedMap should explicitly override keySet, values, entrySet methods, asking users to implement the sequenced versions and delegate plain versions to return the sequenced versions instead. This also troubles NavigableMap, but should be easy to fix (and is doc-only) -Chen ________________________________ From: core-libs-dev <core-libs-dev-r...@openjdk.org> on behalf of Chen Liang <chen.l.li...@oracle.com> Sent: Saturday, November 2, 2024 12:08 PM To: Remi Forax <fo...@univ-mlv.fr>; core-libs-dev <core-libs-...@openjdk.java.net> Cc: Stuart Marks <sma...@openjdk.java.net> Subject: Re: ewrite the last section of the overwiew fo SortedMap documentation and a link fo NavigableMap I strongly agree. The use of SortedMap should be no longer preferred, like that for java.util.Stack/Vector. We should update the Javadoc to refer to NavigableMap as the main total-ordered version and refer to SortedMap as a legacy interface. In fact, we should probably override all SortedMap methods in NavigableMap, so IDE navigations never direct users to SortedMap. Regards, Chen Liang ________________________________ From: core-libs-dev <core-libs-dev-r...@openjdk.org> on behalf of Remi Forax <fo...@univ-mlv.fr> Sent: Saturday, November 2, 2024 8:13 AM To: core-libs-dev <core-libs-...@openjdk.java.net> Cc: Stuart Marks <sma...@openjdk.java.net> Subject: ewrite the last section of the overwiew fo SortedMap documentation and a link fo NavigableMap Hello, I was discussing with a student, she was trying to use the SortedMap interface but had trouble with tailMap() no being a strictly higher view from a key. The solution was to use NavigableMap instead of SortedMap because it provides more methods to get lower/higher subMap and entries from keys. I think we can improve de documentation of SortedMap (the last section (Note:) of the overview) by rewriting it saying that NavigableMap provides a richer API instead of the current documentation that propose to add 1 or '\0' to the subMap() which is a ugly hack. regards, Rémi