LinkedList也像ArrayList一樣實現了基本的接口,但是它執行某些從操作時比ArrayList更高效,但在隨機訪問方面要遜色一些。LinkedList中有一些方法雖然名字不同,但可以完成相同的操作,實現相同的功能,其中:
1、getFirst()和element()完全一樣,它們都返回列表的頭(第一個元素),並且不移除它,若List為空,則拋出NoSunchElementException。
peek()方法也是不移除且返回列表的第一個元素,不同之處是List為空時返回null。
2、remove()和removeFirst()也是一樣的,移除並返回列表的第一個元素,若列表為空,拋出NoSunchElementException。
poll()也是移除並返回列表的第一個元素,若列表為空,返回null。
3、addFirst()、add()、addLast()相同,它們都將某個元素插入到列表的尾部。
4、removeLast()移除並返回列表的最后一個元素。
ListIterator和Iterator的區別
1、迭代器指向的位置是元素之前的位置。
當使用語句Iterator it=List.Iterator()時,迭代器it指向的位置是Iterator1指向的位置,當執行語句it.next()之后,迭代器指向的位置后移到Iterator2指向的位置。
二者的不同之處:
1、使用范圍不同,iterator可以應用於所有的集合,Set、List和Map以及這些集合的子類型。而ListIterator只能用於List及其子類型。
2、ListIterator有add方法,可以向List中添加對象,而Iterator不能。
3、ListIterator和Iterator都有hasNext()和next()方法,可以實現順序向后遍歷,但是ListIterator有hasPrevious()和previous()方法,可以實現逆向遍歷,但是iterator不可以。
4、ListIterator可以定位當前索引的位置,nextIndex()和previousIndex()可以實現。Iterator沒有此功能。
5、都可以實現刪除操作,但是ListIterator可以實現對象的修改,set()方法可以實現。Iterator僅能遍歷,不能實現修改。