複製鏈接
請複製以下鏈接發送給好友

list

(編程術語)

鎖定
list是一個編程術語,在編程語言中List是類庫中的一個類,可以簡單視之為雙向連結串行,以線性列的方式管理物件集合。
中文名
list
類    型
編程術語
一般定義
一覽表; 明細表; 目錄; 名單
區別於
vector

list領域定義

在編程語言中List是標準類庫中的一個類,可以簡單視之為雙向鏈表,以線性列的方式管理物件集合。list的特色是在集合的任何位置增加或刪除元素都很快,但是不支持隨機存取。list是類庫提供的眾多容器(container)之一,除此之外還有vector、set、map等。list以模板方式實現(即泛型),可以處理任意型別的變量,包括使用者自定義的資料型態例如:它可以是一個放置整數(int)型態的list、也可以是放置字串(char或string)型態的list、或者放置使用者自定類別(user-defined class)的list。
有序的collection(也稱為序列)。此接口的用户可以對列表中每個元素的插入位置進行精確地控制。用户可以根據元素的整數索引(在列表中的位置)訪問元素,並搜索列表中的元素。
與vector的區別
參考list是雙向循環鏈表,每一個元素都知道前面一個元素和後面一個元素。在STL中,list和vector一樣,是兩個常被使用的容器。和vector不一樣的是,list不支持對元素的任意存取。list中提供的成員函數與vector類似,不過list提供對錶首元素的操作push_front、pop_front,這是vector不具備的。和vector另一點不同的是,list的迭代器不會存在失效的情況,他不像vector會保留備份空間,在超過容量額度時重新全部分配內存,導致迭代器失效;list沒有備份空間的概念,出入一個元素就申請一個元素的空間,所以它的迭代器不會失效。

list提取數組

list()函數與array()類似,只是它可以在一次操作中從一個數組內提取多個值,同時為多個變量賦值。其形式如下:
voidlist(mixed…)
從數據庫或文件中提取信息時,這種構造尤其有用。例如,假如你希望格式化並輸出從一個文本,文件中讀取信息。文件的每一行都包含用户信息,如姓名、職業和喜愛的顏色,每一項用豎線分隔。典型的一行如下所示:
Nino Sanzi|profesional golfer|green
可以通過一個簡單的循環使用list()來讀取每一行,將各部分數據賦給變量,按照需要格式化並輸出數據。

list領域簡介

與set不同,列表通常允許重複的元素。更確切地講,列表通常允許滿足e1.equals(e2)的元素對e1和e2,並且如果列表本身允許null元素的話,通常它們允許多個null元素。難免有人希望通過在用户嘗試插入重複元素時拋出運行時異常的方法來禁止重複的列表,但我們希望這種用法越少越好。
List接口iterator、add、remove、equals和hashCode方法的協定上加了一些其他約定,超過了Collection接口中指定的約定。為方便起見,這裏也包括了其他繼承方法的聲明。
List接口提供了4種對列表元素進行定位(索引)訪問方法。列表(像Java數組一樣)是基於0的。注意,這些操作可能在和某些實現(例如LinkedList類)的索引值成比例的時間內執行。因此,如果調用者不知道實現,那麼在列表元素上迭代通常優於用索引遍歷列表。
List接口提供了特殊的迭代器,稱為ListIterator,除了允許Iterator接口提供的正常操作外,該迭代器還允許元素插入和替換,以及雙向訪問。還提供了一個方法來獲取從列表中指定位置開始的列表迭代器。
List接口提供了兩種搜索指定對象的方法。從性能的觀點來看,應該小心使用這些方法。在很多實現中,它們將執行高開銷的線性搜索。
List接口提供了兩種在列表的任意位置高效插入和移除多個元素的方法。

list注意事項

儘管列表允許把自身作為元素包含在內,但建議要特別小心:在這樣的列表上,equals和hashCode方法不再是定義良好的。
某些列表實現對列表可能包含的元素有限制。例如,某些實現禁止 null 元素,而某些實現則對元素的類型有限制。試圖添加不合格的元素會拋出未經檢查的異常,通常是NullPointerException或ClassCastException。試圖查詢不合格的元素是否存在可能會拋出異常,也可能簡單地返回 false;某些實現會採用前一種行為,而某些則採用後者。概括地説,試圖對不合格元素執行操作時,如果完成該操作後不會導致在列表中插入不合格的元素,則該操作可能拋出一個異常,也可能成功,這取決於實現的選擇。此接口的規範中將這樣的異常標記為“可選”。

list常用函數

booleanadd(Ee)
向列表的尾部添加指定的元素(可選操作)。
voidadd(intindex,Eelement)
在列表的指定位置插入指定元素(可選操作)。
booleanaddAll(Collection<?extendsE>c)
添加指定collection中的所有元素到此列表的結尾,順序是指定collection的迭代器返回這些元素的順序(可選操作)。
booleanaddAll(intindex,Collection<?extendsE>c)
將指定collection中的所有元素都插入到列表中的指定位置(可選操作)。
voidclear()
從列表中移除所有元素(可選操作)。
booleancontains(Objecto)
如果列表包含指定的元素,則返回true。
booleancontainsAll(Collection<?>c)
如果列表包含指定collection的所有元素,則返回true。
booleanequals(Objecto)
比較指定的對象與列表是否相等。
Eget(intindex)
返回列表中指定位置的元素。
inthashCode()
返回列表的哈希碼值。
intindexOf(Objecto)
返回此列表中第一次出現的指定元素的索引;如果此列表不包含該元素,則返回-1。
booleanisEmpty()
如果列表不包含元素,則返回true。
Iterator<E>iterator()
返回按適當順序在列表的元素上進行迭代的迭代器
intlastIndexOf(Objecto)
返回此列表中最後出現的指定元素的索引;如果列表不包含此元素,則返回-1。
ListIterator<E>listIterator()
返回此列表元素的列表迭代器(按適當順序)。
ListIterator<E>listIterator(intindex)
返回列表中元素的列表迭代器(按適當順序),從列表的指定位置開始。
Eremove(intindex)
移除列表中指定位置的元素(可選操作)。
booleanremove(Objecto)
從此列表中移除第一次出現的指定元素(如果存在)(可選操作)。
booleanremoveAll(Collection<?>c)
從列表中移除指定collection中包含的其所有元素(可選操作)。
booleanretainAll(Collection<?>c)
僅在列表中保留指定collection中所包含的元素(可選操作)。
Eset(intindex,Eelement)
用指定元素替換列表中指定位置的元素(可選操作)。
intsize()
返回列表中的元素數。
List<E>subList(intfromIndex,inttoIndex)
返回列表中指定的fromIndex(包括 )和toIndex(不包括)之間的部分視圖。
Object[]toArray()
返回按適當順序包含列表中的所有元素的數組(從第一個元素到最後一個元素)。
<T>T[]toArray(T[]a)
返回按適當順序(從第一個元素到最後一個元素)包含列表中所有元素的數組;返回數組的運行時類型是指定數組的運行時類型。

listList控件

List控件在各類程序中,具有數據顯示直觀,操作方便的特點。所以使用率極高。
FarPoint的List Pro包含最強大的列表框和組合框的開發組件。這些極其強大的控件允許你顯示多達20億列表項,多行顯示單個記錄,為便於查看合併單元格文本,搜索指定的列表項,或使用無限制的鍵值來進行列表項排序。List Pro具有200多個的屬性,可用來進一步自定義控件的外觀。總之,這些特性可讓List Pro成為最終的數據查看器(Data Viewer)。