1.list是介面,list特性就是有序,會確保以一定的順序儲存元素.
arraylist是它的實現類,是乙個用陣列實現的list.
map是介面,map特性就是根據乙個物件查詢物件.
hashmap是它的實現類,hashmap用hash表實現的map,就是利用物件的hashcode(hashcode()是object的方法)進行快速雜湊查詢.(關於雜湊查詢,可以參看《資料結構》)
2.一般情況下,如果沒有必要,推薦**隻同list,map介面打交道.
比如:list list = new arraylist();
這樣做的原因是list就相當於是乙個泛型的實現,如果想改變list的型別,只需要:
list list = new linkedlist();//linkedlist也是list的實現類,也是arraylist的兄弟類
這樣,就不需要修改其它**,這就是介面程式設計的優雅之處.
另外的例子就是,在類的方法中,如下宣告:
private void domyaction(list list){}
這樣這個方法能處理所有實現了list介面的類,一定程度上實現了泛型函式.
3.如果開發的時候覺得arraylist,hashmap的效能不能滿足你的需要,可以通過實現list,map(或者collection)來定製你的自定義類.
List與ArrayList起頭的區別
當宣告為list list new arraylist 時,這句話建立了乙個arraylist的物件,然後把它上溯至list,此時它是個list物件,可以使用list固有的屬性和方法,但是不能使用原來arraylist的屬性。list list new arraylist list.trimtosi...
C 中陣列,ArrayList與List物件的區別
在c 中,當我們想要儲存一組物件的時候,就會想到用陣列,arraylist,list這三個物件了。那麼這三者到底有什麼樣的區別呢?我們先來了解一下陣列,因為陣列在c 中是最早出現的。陣列陣列有很多的優點,比如說陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡單,比如 ...
陣列 List和ArrayList的區別
陣列 list和arraylist的區別 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡單,比如 string s new string 3 賦值 s 0 a s 1 b s 2 c 修改 s 1 b1 但是陣列也存在一些不足的地方。比如在陣列的兩個資料間插入資料也...