Java提供了數(shù)種持有對象的方式,包括語言內(nèi)置的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個(gè)面試中的經(jīng)典問題。
1 Collection 和 Collections的區(qū)別。
2 List, Set, Map是否繼承自Collection接口。
3 ArrayList和Vector的區(qū)別。
4 HashMap和Hashtable的區(qū)別。
篇尾有答案,我們開始正題。
集合Collection接口
--Collection 是任何對象組,元素各自獨(dú)立,通常擁有相同的套用規(guī)則。Set List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
訪問/遍歷集合元素的好辦法是使用Iterator接口(迭代器用于取代Enumeration)
Public interface Iterator{
Public Boolean hasNext(0;
Public Object next(0;
Public void remove(0;
}
集set
--沒有重復(fù)項(xiàng)目的集合
有三種特定類型的集可用
HashSet-基于散列表的集,加進(jìn)散列表的元素要實(shí)現(xiàn)hashCode()方法
LinkedHashSet-對集迭代時(shí),按增加順序返回元素
TreeSet-基于(平衡)樹的數(shù)據(jù)結(jié)構(gòu)
清單List
--位置性集合。加進(jìn)清單的元素可以加在清單中特定位置或加到末尾
有兩個(gè)特定版本
ArrayList(數(shù)組表)-類似于Vector,都用于縮放數(shù)組維護(hù)集合。區(qū)別:
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
學(xué)集合其實(shí)是因?yàn)槲乙芯糠盒停嘤谧鳛榍疤岬募线€沒學(xué)懂,所以就先來搞搞它吧。XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
Java提供了數(shù)種持有對象的方式,包括語言內(nèi)置的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個(gè)面試中的經(jīng)典問題。
1 Collection 和 Collections的區(qū)別。
2 List, Set, Map是否繼承自Collection接口。
3 ArrayList和Vector的區(qū)別。
4 HashMap和Hashtable的區(qū)別。
篇尾有答案,我們開始正題。
集合Collection接口
--Collection 是任何對象組,元素各自獨(dú)立,通常擁有相同的套用規(guī)則。Set List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
訪問/遍歷集合元素的好辦法是使用Iterator接口(迭代器用于取代Enumeration)
Public interface Iterator{
Public Boolean hasNext(0;
Public Object next(0;
Public void remove(0;
}
集set
--沒有重復(fù)項(xiàng)目的集合
有三種特定類型的集可用
HashSet-基于散列表的集,加進(jìn)散列表的元素要實(shí)現(xiàn)hashCode()方法
LinkedHashSet-對集迭代時(shí),按增加順序返回元素
TreeSet-基于(平衡)樹的數(shù)據(jù)結(jié)構(gòu)
清單List
--位置性集合。加進(jìn)清單的元素可以加在清單中特定位置或加到末尾
有兩個(gè)特定版本
ArrayList(數(shù)組表)-類似于Vector,都用于縮放數(shù)組維護(hù)集合。區(qū)別:
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
學(xué)集合其實(shí)是因?yàn)槲乙芯糠盒停嘤谧鳛榍疤岬募线€沒學(xué)懂,所以就先來搞搞它吧。XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
Java提供了數(shù)種持有對象的方式,包括語言內(nèi)置的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個(gè)面試中的經(jīng)典問題。
1 Collection 和 Collections的區(qū)別。
2 List, Set, Map是否繼承自Collection接口。
3 ArrayList和Vector的區(qū)別。
4 HashMap和Hashtable的區(qū)別。
篇尾有答案,我們開始正題。
集合Collection接口
--Collection 是任何對象組,元素各自獨(dú)立,通常擁有相同的套用規(guī)則。Set List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
訪問/遍歷集合元素的好辦法是使用Iterator接口(迭代器用于取代Enumeration)
Public interface Iterator{
Public Boolean hasNext(0;
Public Object next(0;
Public void remove(0;
}
集set
--沒有重復(fù)項(xiàng)目的集合
有三種特定類型的集可用
HashSet-基于散列表的集,加進(jìn)散列表的元素要實(shí)現(xiàn)hashCode()方法
LinkedHashSet-對集迭代時(shí),按增加順序返回元素
TreeSet-基于(平衡)樹的數(shù)據(jù)結(jié)構(gòu)
清單List
--位置性集合。加進(jìn)清單的元素可以加在清單中特定位置或加到末尾
有兩個(gè)特定版本
ArrayList(數(shù)組表)-類似于Vector,都用于縮放數(shù)組維護(hù)集合。區(qū)別:
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數(shù)據(jù)增長:當(dāng)需要增長時(shí),Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半
HashMap和Hashtable的區(qū)別
一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)
二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value
參考《Mastering Java2 J2SE1.4 》By Zukowshi 《Thinking in Java》By BrUCe Eckel
posted on 2007-10-04 22:03
火焰出林 閱讀(323)
評論(0) 編輯 收藏 所屬分類:
Core JAVA