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 <[email protected]> on behalf of Chen Liang <[email protected]> Sent: Saturday, November 2, 2024 12:08 PM To: Remi Forax <[email protected]>; core-libs-dev <[email protected]> Cc: Stuart Marks <[email protected]> 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 <[email protected]> on behalf of Remi Forax <[email protected]> Sent: Saturday, November 2, 2024 8:13 AM To: core-libs-dev <[email protected]> Cc: Stuart Marks <[email protected]> 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
