我有一个LinkedList对象。
我想在我的LinkedList对象上应用这5个方法。
LinkedList<String> ll = new LinkedList<String>();
1) Object o = ll.poll();
2) Object o = ll.pollFirst();
3) Object o = ll.pollLast();
4) ll.remove();
5) Object o = ll.removeFirst();
当我使用poll(),pollFirst(),removeFirst()时,那些正在删除列表的第一项。
任何人都可以告诉我在LinkedList对象上使用这些方法时发生了什么?以及适用于LinkedList对象的这5种方法之间有什么区别。
提前致谢。
答案 0 :(得分:8)
Javadoc告诉你:
poll():检索并删除此双端队列所代表的队列的头部(换句话说,此双端队列的第一个元素),如果此双端队列为空,则返回null。
remove():返回此列表的头部,如果此列表为空则抛出NoSuchElementException
pollFirst()与poll()相同。
pollLast()返回此列表的最后一个元素,如果此列表为空,则返回null
removeFirst()与remove()
相同
答案 1 :(得分:4)
我认为方法的命名非常明显,告诉他们做了什么。
只有令人困惑的事情是为什么2个方法在poll()和pollFirst()中做同样的事情。为此,见下文 -
LinkedList实现了两个接口 - Queue和Deque。 Deque从Queue延伸出来。 现在,Deque定义了方法 - Deque#pollFirst()并继承了方法 - Queue#poll()。 因此,LinkedList基本上为它实现的两个接口定义了这两个方法。