6. List接口

6. List接口

1.1 特性
繼承 Collection,允許重複,以元素安插的次序來放置元素,不會重新排列
1.2 常用方法
boolean add(int index,Object obj)
boolean addAll(int index,Collection c)
Object get(int index)
int indexOf(Object obj)
int lastIndexOf(Object obj)
ListIterator listIterator()
ListIterator listIterator(int index)
Object remove(int index)
Object set(int index, Object obj)
List subList(int start, int end)
1.3 List 接口實現類
1.3.1 ArrayList
ArrayList類封裝了一個動態再分配的Object[]數組,是用數組實現的,讀取速度快,插入與刪除速度慢(因爲插入與刪除時要移動後面的元素),適合於隨機訪問。
實例
ArrayListTest.java
1.3.2 LinkedList
LinkedList類添加了一些處理列表兩端元素的方法,刪除與插入速度快,讀取速度較慢,因爲它讀取時是從頭向尾(如果節點在鏈的前半部分),或尾向頭(如果節點在鏈的後半部分)查找元素。因此適合於元素的插入與刪除操作。
方法
LinkedList()
LinkedList(Collection c)
void addFirst(Object o)
void addLast(Object o)
Object getFirst()
Object getLast()
Object removeFirst()
Object removeLast()
實例
LinkedListTest.java

1.4 對list的選擇

1)對於隨機查詢與迭代遍歷操作,數組比所有的容器都要快。
2)從中間的位置插入和刪除元素,LinkedList要比ArrayList快,特別是刪除操作。

3)Vector通常不如ArrayList快,則且應該避免使用,它目前仍然存在於類庫中的原因是爲了支持過去的代碼。
4)最佳實踐:將ArrayList作爲默認首選,只有當程序的性能因爲經常從list中間進行插入和刪除而變差的時候,纔去選擇LinkedList。當然了,如果只是使用固定數量的元素,就應該選擇數組了。

原文出處:http://geek99.com/node/450#

該博客教程視頻地址:http://geek99.com/node/1646

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章