java集合框架詳解
?。?首先查看jdk中Collection類的源碼后會發(fā)現(xiàn)如下內(nèi)容:
。。. * @see AbstractCollection * @since 1.2*/ publicinterfaceCollection《E》extendsIterable《E》 {// Query Operations
通過查看可以發(fā)現(xiàn)Collection是一個接口類,其繼承了java迭代接口Iterable。
眾所周知在我們使用Java中的類的存儲的時候經(jīng)常會使用一些容器,鏈表的概念,本文將徹底幫您弄清鏈表的各種概念和模型!?。?!
注意理解哦~~~ 大致框架如下:
Collection接口有兩個主要的子接口List和Set,注意Map不是Collection的子接口哦這個要牢記。
Collection中可以存儲的元素間無序,可以重復(fù)組各 自獨(dú)立的元素, 即其內(nèi)的每個位置僅持有一個元素,同時允許有多個null元素對象。
Collection接口中的方法如下:
1)List接口
List接口對Collection進(jìn)行了簡單的擴(kuò)充
查看List接口的源碼會發(fā)現(xiàn):
。。.《br》 * @see AbstractList * @see AbstractSequentialList * @since 1.2*/ public interface List《E》 extends Collection《E》 { // Query Operations /** * Returns the number of elementsinthis list. If this list contains * more than 《tt》Integer.MAX_VALUE《/tt》 elements, returns * 《tt》Integer.MAX_VALUE《/tt》。 《br》 。。.
這里也就知道為什么Collection接口時List接口的父接口了吧。
List接口中的元素的特點(diǎn)為:
List中存儲的元素實(shí)現(xiàn)類排序,而且可以重復(fù)的存儲相關(guān)元素。
同時List接口又有兩個常用的實(shí)現(xiàn)類ArrayList和LinkedList
1)ArrayList:
ArrayList數(shù)組線性表的特點(diǎn)為:類似數(shù)組的形式進(jìn)行存儲,因此它的隨機(jī)訪問速度極快。
ArrayList數(shù)組線性表的缺點(diǎn)為:不適合于在線性表中間需要頻繁進(jìn)行插入和刪除操作。因?yàn)槊看尾迦牒蛣h除都需要移動數(shù)組中的元素。
可以這樣理解ArrayList就是基于數(shù)組的一個線性表,只不過數(shù)組的長度可以動態(tài)改變而已。
對于ArrayList的詳細(xì)使用信息以及創(chuàng)建的過程可以查看jdk中ArrayList的源碼,這里不做過多的講解。
對于使用ArrayList的開發(fā)者而言,下面幾點(diǎn)內(nèi)容一定要注意啦,尤其找工作面試的時候經(jīng)常會被問到。
注意啦?。。。。。。?!
a.如果在初始化ArrayList的時候沒有指定初始化長度的話,默認(rèn)的長度為10.
packagecom.yonyou.test; importjava.util.ArrayList; importjava.util.Iterator;importjava.util.List; /** * 測試類 *@author小浩 * @創(chuàng)建日期 2015-3-2 */publicclassTest{publicstaticvoidmain(String[] args) { List《String》 list=newArrayList《String》(); list.add( “Hello”); list.add( “World”); list.add( “HAHAHAHA”); //第一種遍歷方法使用foreach遍歷Listfor(String str : list) { //也可以改寫for(int i=0;i《list.size();i++)這種形式System.out.println(str); } //第二種遍歷,把鏈表變?yōu)閿?shù)組相關(guān)的內(nèi)容進(jìn)行遍歷String[] strArray= newString[list.size()]; list.toArray(strArray); for( inti=0;i《strArray.length;i++) //這里也可以改寫為foreach(String str:strArray)這種形式{ System.out.println(strArray[i]); } //第三種遍歷 使用迭代器進(jìn)行相關(guān)遍歷Iterator《String》 ite=list.iterator(); while(ite.hasNext()) { System.out.println(ite.next()); } } }
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%