LinkedListelement()方法和getFirst()方法有类似的描述(奇怪的是-不是同一个词)。Deque明确指出这两种方法在返回值和异常方面是相同的。我的问题是-为什么有2个相同的方法?是为了向后兼容吗?一种方法是否比另一种更有效? 最佳答案 element()继承自Queue,只有一个访问方法才有意义,因为您在队列中所能做的就是删除第一个元素。但是,双端队列从两端支持这一点,需要显式方法来做到这一点。设计一个API不是很好,您可以使用element()访问第一个元素,而使用getLast()访问最后一个元素。另一件可
Iterables为getLast提供两种方法publicstaticTgetLast(Iterableiterable);publicstaticTgetLast(Iterableiterable,@NullableTdefaultValue);但只有一个用于getFirstpublicstaticTgetFirst(Iterableiterable,@NullableTdefaultValue);是否有任何破坏对称性的设计/实现原因? 最佳答案 我认为重点是没有理由使用getFirst(iterable),因为这可以通过iter
Iterables为getLast提供两种方法publicstaticTgetLast(Iterableiterable);publicstaticTgetLast(Iterableiterable,@NullableTdefaultValue);但只有一个用于getFirstpublicstaticTgetFirst(Iterableiterable,@NullableTdefaultValue);是否有任何破坏对称性的设计/实现原因? 最佳答案 我认为重点是没有理由使用getFirst(iterable),因为这可以通过iter
在Java的LinkedList实现中,我看到两个方法在我看来具有相同的功能。getFirst()--返回列表中的第一个元素。peekFirst()--检索但不删除此列表的第一个元素,如果此列表为空则返回null。他们都获得了指向LinkedList中第一个元素的指针,而不对其进行任何更改。那么,有什么区别呢?我看到的唯一区别是,如果列表为空,peekFirst返回null,而getFirst抛出NoSuchElementException如果列表为空。这样的设计模式有什么用? 最佳答案 Java介绍LinkedList在1.2版中
这个问题在这里已经有了答案:WhythereisnogetFirst(iterable)method?(2个回答)关闭6年前.来自GoogleGuavaJavaDocforIterables:staticTgetFirst(Iterableiterable,TdefaultValue)->如果可迭代对象为空,则返回iterable或defaultValue中的第一个元素。staticTgetLast(Iterableiterable)->返回iterable的最后一个元素。staticTgetLast(Iterableiterable,TdefaultValue)->如果可迭代对象为空