java LinkedList方法getFirst()和element()

时间:2019-03-14 13:28:38

标签: java linked-list

因此我可以从stackoverflow的先前答案中看到,getFirstpeekFirst之间存在差异,因为如果LinkedList为peekFirst不会抛出exception空的。

但是getFirstelement有什么区别?

  

getFirst()返回此列表中的第一个元素。

     

element()检索但不删除此列表的头(第一个元素)。

如果为空,两者都会抛出NoSuchElementException

谢谢!

4 个答案:

答案 0 :(得分:2)

它们与Deque文档中指定的等效。

  

检索但不删除此双端队列代表的队列的头(换句话说,此双端队列的第一个元素)。此方法与peek的区别仅在于,如果此双端队列为空,它将引发异常。

     

此方法等效于getFirst()。

https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html#element()

答案 1 :(得分:2)

elementQueue界面中,而getFirst不是。但是(如其他地方所述),行为是相同的。

答案 2 :(得分:1)

source code for LinkedList全部说明:

> db.places.insert({'geometry': []})
WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 121,
                "errmsg" : "Document failed validation"
        }
})
> db.places.insert({'geometry': {}})
WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 121,
                "errmsg" : "Document failed validation"
        }
})
> db.places.insert({'geometry': null})
WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 121,
                "errmsg" : "Document failed validation"
        }
})

> db.places.createIndex({'geometry': '2dsphere'}) { "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } > db.runCommand({ collMod: 'places', validator: {"geometry.type": {$in: ... ["Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon"] ... }}}) { "ok" : 1 } 方法仅调用public E element() { return getFirst(); } 。因此,对于element()的{​​{1}}实现,这两种方法都有效地完成了同样的事情。

注意:getFirst()接口的另一个实现LinkedList也有一个List实现,它仅调用Deque

答案 3 :(得分:1)

没有区别,element的实现是

public E element() {
    return getFirst();
}

javadoc甚至声明

  

此方法等效于{@link #getFirst()}