這篇博客主要是總結(jié)一下java中集合框架List接口的用法。
1.集合框架
(1)集合框架的作用
在實(shí)際開(kāi)發(fā)中,我們經(jīng)常會(huì)對(duì)一組相同類型的數(shù)據(jù)進(jìn)行統(tǒng)一管理操作。到目前為止,我們可以使用數(shù)組結(jié)構(gòu),鏈表結(jié)構(gòu)二叉樹(shù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)
數(shù)組最大的問(wèn)題在于數(shù)組中的元素的個(gè)數(shù)是固定的,要實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,必竟還是比較麻煩,自己實(shí)現(xiàn)鏈表或者二叉樹(shù)結(jié)構(gòu)來(lái)管理對(duì)象更是不方便
在JDK1.2版本之后,JAVA完整的提供了類集合的概念,封裝了一組強(qiáng)大的、非常方便的結(jié)合框架API,讓我們?cè)陂_(kāi)發(fā)中大大提高了效率
集合分為三大接口: Collection Map Iterator 集合框架的接口和類在Java.util包中
(2)集合框架結(jié)構(gòu)圖

(3)Collection接口
Collection層次結(jié)構(gòu)中的根接口。Collection表示一組對(duì)象,這些對(duì)象也稱為collection的元素。一些collection允許有重復(fù)的元素,而另一些則不允許。一些collection是有序的,而另一些則是無(wú)序的。JDK不提供此接口的任何直接實(shí)現(xiàn):它提供更具體的子接口(如set和List)實(shí)現(xiàn)。此接口通常用來(lái)傳遞collection,并在需要最大普遍性的地方操作這些collection
2.List接口
public interface List extends Collection
有序的collction。此接口的用戶可以對(duì)列表中每個(gè)元素的插入位置進(jìn)行精確控制,用戶可以根據(jù)元素的整數(shù)的索引(在列表中的位置)訪問(wèn)元素,并搜索列表中的元素。
List接口的注意事項(xiàng)
1.允許重復(fù)元素
2.必須是有序
3.允許null元素 (1)ArrayList
public class ArrayList extends AbstractKList implements List
public static void arrayList() { //創(chuàng)建ArrayList對(duì)象,默認(rèn)的容量為10,超過(guò)10個(gè)會(huì)自動(dòng)擴(kuò)充 ArrayList list =new ArrayList(); //添加元素 list.add(10); list.add("小白"); list.add(true); list.add(11); list.add(12); list.add(13); list.add(14); list.add(15); list.add(16); list.add(17); list.add(18); list.add(19); list.add(20); list.add(5,50); System.out.(2)Vectorpublic class Vector extends AbstractList implements List,Randomaccess
,Cloneable,SerializableVector類可以實(shí)現(xiàn)可增長(zhǎng)的對(duì)象數(shù)組。與數(shù)組一樣,它包含可以使用整數(shù)索引進(jìn)行訪問(wèn)的組件。但是,Vector的大小可以根據(jù)需要增大或縮小,以適應(yīng)創(chuàng)建Vector后進(jìn)行添加或者移除項(xiàng)操作
Vector注意事項(xiàng)
1.使用動(dòng)態(tài)對(duì)象數(shù)組實(shí)現(xiàn) 2.默認(rèn)構(gòu)造方法初始化容量為10 3.擴(kuò)充方式:如果有指定的增量,當(dāng)前容量+增量 如果沒(méi)有增量:原容量*2 4.線程安全
public static void vector() { //默認(rèn)大小為10 Vector vector= new Vector(); vector.add("純純"); vector.add("夢(mèng)夢(mèng)"); vector.add("愛(ài)愛(ài)"); }(3)LinkedList
public class LinkedList extends AbstractSequentialList implements List,Deque,Cloneable,Serializable
List接口的鏈接列表實(shí)現(xiàn)。實(shí)現(xiàn)所有可選的列表操作,并且允許所有元素。除了實(shí)現(xiàn)List接口外,LinkedList類還為在列表的開(kāi)頭以及結(jié)尾get,remove和insert元素提供了統(tǒng)一的命名方法
LinkedList注意事項(xiàng)
1.使用雙向鏈表實(shí)現(xiàn)
2.優(yōu)點(diǎn):適合插入與刪除操作
public static void linkedlist(){ LinkedList linkedList=new LinkedList(); linkedList.add("鳳鳳"); linkedList.add("萌萌"); linkedList.add("傻傻"); }新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注