LinkedList是实现List接口。LinkedList类有很多方法,对头尾的操作都提供了方法。如addFirst(),addLast()等等。LinkedList与Stack的顺序刚好相反,是先进先出的。
import java.util.LinkedList;
public class LinkedListTest {
/**
* @param args
*/
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<String>();
linkedList.add("1");
linkedList.add("2");
linkedList.add("3");
linkedList.add("4");
linkedList.addFirst("add first");
linkedList.addLast("add last");
System.out.println(linkedList);
linkedList.offerFirst("offer first");
linkedList.offerLast("offer last");
System.out.println(linkedList);
linkedList.offer("offer");
System.out.println(linkedList);
System.out.println(linkedList.pop());
System.out.println(linkedList);
System.out.println(linkedList.getLast());
}
}
输出:
[add first, 1, 2, 3, 4, add last]
[offer first, add first, 1, 2, 3, 4, add last, offer last]
[offer first, add first, 1, 2, 3, 4, add last, offer last, offer]
offer first
[add first, 1, 2, 3, 4, add last, offer last, offer]
offer
从结果看,个人认为,没有指定位置的add()和addFirst(),offer(),offerFirst()是基本没什么区别,都是在最前面出入对象,addLast()和offerLast()也基本没什么区别。
还有element()和peek()方法的作用完全一样。
为什么要提供那么多相同作用的方法呢?
因为LinkedList实现了一系列的接口才导致这种情况出现的。
以上均为自己的理解,如有不对,忘君指教,不胜感激。。。