list的一個典型的特性就是其長度是可變的,我們可以很友善地對它進行插入和删除元素的操作,這是它與數組所存在的一個很大的差別,後者的長度是固定的,而且我們不能從數組中删除元素,隻能修改元素的值。
利用arrays.aslist(array)傳回一個list,然而這個傳回的是隻讀的list不支援add和remove的操作。
jdk文檔是這麼說的:
public static <t> list<t> aslist(t... a) 傳回一個受指定數組支援的固定大小的清單。(對傳回清單的更改會“直接寫”到數組。)此方法同 collection.toarray() 一起,充當了基于數組的 api 與基于 collection 的 api 之間的橋梁。傳回的清單是可序列化的,并且實作了 randomaccess。此方法還提供了一個建立固定長度的清單的便捷方法,該清單被初始化為包含多個元素: list<string> stooges = arrays.aslist("larry", "moe", "curly");
可以看出這是對數組的一個簡單包裝,提供了一個可按照list方式通路的外殼而已,其本質還是數組。在.net中,array和list都實作ilist接口,當我們通過ilist接口來通路一個數組時其實就與通路arrays.aslist(array)所傳回的list是一樣的。
至于jdk裡說可以用來建立固定大小的list,我暫時還不知道在哪種情況下适用。