On Tue, 8 Feb 2022 17:23:38 GMT, Stuart Marks <sma...@openjdk.org> wrote:
> PR for Sequenced Collections implementation. Since we added reversal to deque, can we add notes to a few Collections APIs like `Collections::asLifoQueue` about this newer alternative? Also on using `reverse` on the list view than actually reversing a whole list. In addition, the new methods should have `@since 20` tags, such as on `LinkedList::reversed`, `SortedSet::addFirst`. Other similar methods are version-tagged, like `Collection::spliterator` or `Method::getParameterCount`. Is there a particular reason we define poll (null on empty) in SequencedMap but remove (NSEE on empty) in SequencedCollection? I understand that SequencedCollection doesn't want to be null-ambiguous, and map entries are non-null so poll there is not ambiguous. But I still think using remove for both look more consistent. Just curious, will sequenced collections be delivered directly or will it incubate/preview first? src/java.base/share/classes/java/util/Collections.java line 1211: > 1209: * @param s the set for which an unmodifiable view is to be > returned. > 1210: * @return an unmodifiable view of the specified set. > 1211: * @since 20 Extraneous and wrong Suggestion: src/java.base/share/classes/java/util/Collections.java line 1248: > 1246: * @param s the set for which an unmodifiable view is to be > returned. > 1247: * @return an unmodifiable view of the specified sequenced set. > 1248: */ Suggestion: * @since 20 */ The last one was misplaced. src/java.base/share/classes/java/util/Collections.java line 5980: > 5978: * an eviction policy, which is not possible with a {@code > LinkedHashSet}. > 5979: * > 5980: * <pre>{@code Can we upgrade this to a snippet? src/java.base/share/classes/java/util/SortedSet.java line 303: > 301: * @since 20 > 302: */ > 303: default E removeFirst() { Should removeFirst/removeLast be overridden in NavigableSet with a new default implementation like: if (this.isEmpty()) { throw new NoSuchElementException(); } return this.pollFirst(); which is probably slightly more efficient? ------------- PR Comment: https://git.openjdk.org/jdk/pull/7387#issuecomment-1253174627 PR Comment: https://git.openjdk.org/jdk/pull/7387#issuecomment-1302239328 PR Comment: https://git.openjdk.org/jdk/pull/7387#issuecomment-1475519496 PR Review Comment: https://git.openjdk.org/jdk/pull/7387#discussion_r1012461962 PR Review Comment: https://git.openjdk.org/jdk/pull/7387#discussion_r1012462289 PR Review Comment: https://git.openjdk.org/jdk/pull/7387#discussion_r1139631921 PR Review Comment: https://git.openjdk.org/jdk/pull/7387#discussion_r1013372259