java集合框架詳解
) 首先查看jdk中Collection類的源碼后會發現如下內容:
。。. * @see AbstractCollection * @since 1.2*/ publicinterfaceCollection《E》extendsIterable《E》 {// Query Operations
通過查看可以發現Collection是一個接口類,其繼承了java迭代接口Iterable。
眾所周知在我們使用Java中的類的存儲的時候經常會使用一些容器,鏈表的概念,本文將徹底幫您弄清鏈表的各種概念和模型!!!!
注意理解哦~~~ 大致框架如下:
Collection接口有兩個主要的子接口List和Set,注意Map不是Collection的子接口哦這個要牢記。
Collection中可以存儲的元素間無序,可以重復組各 自獨立的元素, 即其內的每個位置僅持有一個元素,同時允許有多個null元素對象。
Collection接口中的方法如下:
1)List接口
List接口對Collection進行了簡單的擴充
查看List接口的源碼會發現:
。。.《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接口中的元素的特點為:
List中存儲的元素實現類排序,而且可以重復的存儲相關元素。
同時List接口又有兩個常用的實現類ArrayList和LinkedList
1)ArrayList:
ArrayList數組線性表的特點為:類似數組的形式進行存儲,因此它的隨機訪問速度極快。
ArrayList數組線性表的缺點為:不適合于在線性表中間需要頻繁進行插入和刪除操作。因為每次插入和刪除都需要移動數組中的元素。
可以這樣理解ArrayList就是基于數組的一個線性表,只不過數組的長度可以動態改變而已。
對于ArrayList的詳細使用信息以及創建的過程可以查看jdk中ArrayList的源碼,這里不做過多的講解。
對于使用ArrayList的開發者而言,下面幾點內容一定要注意啦,尤其找工作面試的時候經常會被問到。
注意啦!!!!!!!!
a.如果在初始化ArrayList的時候沒有指定初始化長度的話,默認的長度為10.
packagecom.yonyou.test; importjava.util.ArrayList; importjava.util.Iterator;importjava.util.List; /** * 測試類 *@author小浩 * @創建日期 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); } //第二種遍歷,把鏈表變為數組相關的內容進行遍歷String[] strArray= newString[list.size()]; list.toArray(strArray); for( inti=0;i《strArray.length;i++) //這里也可以改寫為foreach(String str:strArray)這種形式{ System.out.println(strArray[i]); } //第三種遍歷 使用迭代器進行相關遍歷Iterator《String》 ite=list.iterator(); while(ite.hasNext()) { System.out.println(ite.next()); } } }
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%