1.
List是接口,List特性就是有序,會確保以一定的順序保存元素.
ArrayList是它的實(shí)現(xiàn)類,是一個用數(shù)組實(shí)現(xiàn)的List.
Map是接口,Map特性就是根據(jù)一個對象查找對象.
HashMap是它的實(shí)現(xiàn)類,HashMap用hash表實(shí)現(xiàn)的Map,就是利用對象的hashcode(hashcode()是Object的方法)進(jìn)行快速散列查找.(關(guān)于散列查找,可以參看<<數(shù)據(jù)結(jié)構(gòu)>>)
2.
一般情況下,如果沒有必要,推薦代碼只同List,Map接口打交道.
比如:List list = new ArrayList();
這樣做的原因是list就相當(dāng)于是一個泛型的實(shí)現(xiàn),如果想改變list的類型,只需要:
List list = new LinkedList();//LinkedList也是List的實(shí)現(xiàn)類,也是ArrayList的兄弟類
這樣,就不需要修改其它代碼,這就是接口編程的優(yōu)雅之處.
另外的例子就是,在類的方法中,如下聲明:
private void doMyAction(List list){}
這樣這個方法能處理所有實(shí)現(xiàn)了List接口的類,一定程度上實(shí)現(xiàn)了泛型函數(shù).
3.
如果開發(fā)的時(shí)候覺得ArrayList,HashMap的性能不能滿足你的需要,可以通過實(shí)現(xiàn)List,Map(或者Collection)來定制你的自定義類.
想飛到 那最高最遠(yuǎn)最灑脫
posted on 2007-11-27 19:47
fighting 閱讀(175)
評論(0) 編輯 收藏