什么是 Java 21 的新序列接口

问题描述 投票:0回答:1

Sequence
中的新
Java 21
界面是什么?它添加了什么以及需要考虑的常见问题是什么?

java interface java-21
1个回答
0
投票

Sequence
接口是Java对顺序
Collections
的标准化,它具有逻辑顺序,或者正如Java Jep所说的“遭遇顺序”。
SortedSet
将能够保持其自然顺序,
List
保持其插入顺序等。 它添加的方法有

SequencedCollection<E> reversed();
void addFirst(E);
void addLast(E);
E getFirst();
E getLast();
E removeFirst();
E removeLast();

getFirst()
方法可以替代
list.get(0)
deque.getFirst()
sortedSet.first()
linkedHashSet.iterator().next()
。与
getLast()
相同,除了
LinkedHashSet
没有最后一个,你必须迭代整个 Set。在我看来,关于
SortedSet
,这有些奇怪。
SortedSet
被迫实现
addFirst()
addLast()
方法,这些方法在上下文中没有意义,并且 Jep 说“这些方法可以抛出
UnsupportedOperationException
”。

Reversed()
还标准化了如何向后迭代。以前有
navSet.descendingSet()
deque.descendingIterator()
for (var it = list.listIterator(list.size()); it.hasPrevious();) {}
,而
LinkedHashSet
又没有方法。现在
reversed()
允许使用 for、流等所有标准迭代技术,并包括
LinkedHashSet
。 最后一点是,如果代码库使用这些方法名称,它们将会遇到问题。请参阅 Jep 了解该项目的完整描述。

© www.soinside.com 2019 - 2024. All rights reserved.