Java为什么不为ArrayLists实现last()方法?

Reu*_*ems -1 java linked-list arraylist data-structures

我不问如何找到它,那就是在已经回答了这个其他问题:

但是,仅深入Java语言中的数据结构,我发现LinkedList实现具有一个getLast()方法,该方法在ArrayList实现中未实现(出于某些原因,我认为是这样)。我找不到其他类似的问题,也无法在Internet上发布解释该问题的信息,因此我决定在这里提出此问题。

我们可以认为,这是不优雅从一个ArrayList获得最后一个元素的电流的方式,通常这种实现比LinkedList的更广泛的应用,因为它执行在更大范围内的情况下更好,因为讨论在这里

有人知道为什么ArrayList不实现该方法吗?

编辑:我已编辑我的问题,以避免混淆和基于意见的答案。根据事实和参考,安德烈亚斯(Andreas)的以下答案是我一直在寻找的答案。

And*_*eas 5

Collection类通常不实现接口未指定的任何公共方法。

ArrayList确实有一个方法名称trimToSize(),该方法未由接口指定,但这是一个非常特定于实现的方法。

LinkedList 没有接口未指定的任何方法。

原因 LinkedList有一个getLast()显示在Javadoc:

指定者:接口Deque < E >中的
getLast

Deque具有与大多数相同的方法List。主要区别在于,List具有通过索引位置访问元素的Deque方法,而具有用于访问第一个/最后一个元素的方法。

如果您要使用类似列表的集合结构,在该结构中,对最后一个元素的访问很简单,请对Deque接口(而不是List接口)进行编码,并使用ArrayDeque代替ArrayList