我最近与同事讨论了为什么Java中的List接口没有head()和tail()方法.
为了实现这样的功能,必须编写一个看起来像这样的包装器:
public E head() {
if (underlyingList == null || underlyingList.isEmpty())
return null;
return underlyingList.get(0);
}
public E tail() {
if (underlyingList == null || underlyingList.isEmpty())
return null;
return underlyingList.get(underlyingList.size()-1);
}
Run Code Online (Sandbox Code Playgroud)
我不知道所有的List实现,但我认为至少在LinkedList和ArrayList中,获取最后一个元素(常量时间)应该是非常简单的.
所以问题是:
是否有一个特定的原因为什么为任何List实现提供tail方法不是一个好主意?