List

<small>

List集合

collection接口下的子接口
集合特點(diǎn):元素添加與輸出有序谨读,元素可重復(fù)
List接口無(wú)法實(shí)例化
可以通過(guò)下標(biāo)操作元素(List最大特點(diǎn))

List list=new ArrayList();
list.add("java")
list.add("C")
list.add("java")
list.add("php")
system.out.println(list);

add (int index.Object obi)

list.add(2,"IOS")
指定下標(biāo)的添加集合元素窿冯,原位置元素依次向后移位
插入元素

Object(E) remove(int index)

制定下標(biāo)移除元素,并將移除元素返回
Object obj=list.remove(3);

set(int index,Object obj)

指定下標(biāo)的元素替換氧卧,并返回替換的元素
Object obj1=list.set(list.size()-1,".NET")

object get(int index)

類(lèi)似于數(shù)組Array(index)
Object obj2=list.get(4);

int indexOf(Object obj)

獲得指定元素的下標(biāo)位置
int cIndex=list.indexOf("C");

addAll(int index, List list)

指定下標(biāo)的添加整體

boolean euqals(Collection col)

比較兩個(gè)集合值是否相同
注意:順序比較谭企,元素順序要一致

由于List集合可以通過(guò)下標(biāo)操作元素的特點(diǎn),所以可以通過(guò)普通的for循環(huán)來(lái)實(shí)現(xiàn)集合遍歷

//方式一:普通for循環(huán)
        for(int i=0; i<list.size(); i++){
            System.out.println(list.get(i));
        }
        System.out.println("***********************");
        //方式二:迭代器
        Iterator ite = list.iterator();
        while(ite.hasNext()){
            System.out.println(ite.next());
        }
        System.out.println("***********************");
        //方式三:增強(qiáng)for循環(huán)
        for(Object obj : list){
            System.out.println(obj);

List sublist=list.sublist(2,8)

截取集合,截取后返回一個(gè)子集合
注意事項(xiàng):返回的子集合并非是新對(duì)象侮穿,而是直接將元對(duì)象中的元素給予繁育呈現(xiàn)出來(lái)而已,若想改變子集合的元素內(nèi)容毁嗦,則必定會(huì)導(dǎo)致原集合元素也發(fā)生改變撮珠,
建議:不要對(duì)子集合進(jìn)行元素修改操作
List list=new ArrayList();

object[] toArray()

集合→數(shù)組
將集合轉(zhuǎn)換為Object類(lèi)型的數(shù)組
將集合轉(zhuǎn)換為指定類(lèi)型的數(shù)組時(shí)金矛,要對(duì)集合指定泛型
Object[] objs=List.toArray();
String[] str=list.
集合轉(zhuǎn)換過(guò)來(lái)的數(shù)組是一個(gè)新對(duì)象芯急,對(duì)數(shù)組的元素使用不會(huì)影響到原集合

數(shù)組→集合

通過(guò)Arrays工具類(lèi)中的asList方法
List<T> asList(T list)
List list=Arrays.asList(strs);
數(shù)組轉(zhuǎn)換過(guò)來(lái)的集合不是新對(duì)象,而是對(duì)數(shù)組的另一種呈現(xiàn)方式驶俊,對(duì)集合元素操作娶耍,其本質(zhì)就是對(duì)數(shù)組元素的操作。
集合不允許做增刪操作(不能改變?cè)貍€(gè)數(shù))饼酿,只可以實(shí)現(xiàn)元素內(nèi)容的替換操作榕酒,集合元素的改變,必定會(huì)影響到原數(shù)組

List<String> list = new ArrayList();
        list.add("java");
        list.add("C");
        list.add(".NET");
        list.add("PHP");
        System.out.println("list集合:"+list);
        
        /*
         * 集合 → 數(shù)組
         * 1故俐、方法1:集合轉(zhuǎn)換成Object類(lèi)型的數(shù)組
         *      Object[] toArray()
         * 
         * 2想鹰、方法2:集合轉(zhuǎn)換成指定類(lèi)型的數(shù)組
         *      T[] toArray(T[] t)
         *      注意:必須要求集合有泛型指定。
         */
        Object[] objs = list.toArray();
        System.out.println("list轉(zhuǎn)換成數(shù)組:"+ Arrays.toString(objs));
        
        String[] strs = list.toArray(new String[list.size()]);
        System.out.println("list轉(zhuǎn)換成指定泛型的數(shù)組:"+ Arrays.toString(strs));
        
        /*
         * 集合轉(zhuǎn)換過(guò)來(lái)的數(shù)組药版,特點(diǎn):
         *   1辑舷、集合轉(zhuǎn)換過(guò)來(lái)的數(shù)組是一個(gè)新對(duì)象,
         *      對(duì)數(shù)組元素使用不會(huì)影響到原集合槽片。
         */
        strs = Arrays.copyOf(strs, strs.length+1);
        strs[strs.length-1] = "我愛(ài)你";
        System.out.println("擴(kuò)容之后的數(shù)組:"+ Arrays.toString(strs));
        
        System.out.println("數(shù)組擴(kuò)容后的集合:"+list);

集合的底層實(shí)現(xiàn)何缓,其實(shí)就是數(shù)組

轉(zhuǎn)換

List總結(jié):

1、集合特點(diǎn):添加有序还栓,可重復(fù)碌廓,可通過(guò)下標(biāo)操作元素
2、實(shí)現(xiàn)類(lèi):ArrayList剩盒,LinkedList谷婆,Vector
物理方法上,三者阿迷區(qū)別辽聊,性能上有所區(qū)別
ArrayList:線性結(jié)構(gòu)纪挎,查詢(xún)快,增刪慢
LinkedList:雙向鏈表結(jié)構(gòu)身隐,查詢(xún)慢廷区,增刪快
Vector:ArrayList與LinkedList都是非線程安全的,vector是線程安全的

set集合總結(jié):

也是Collections的子接口
特點(diǎn):添加與輸出順序不一致贾铝,簡(jiǎn)稱(chēng)添加無(wú)序
元素補(bǔ)課重復(fù)
如果要想添加與輸出的順序一致
可以使用Set的子接口的LinkedHashSet
Set set=new HashSet();
如果想讓Set集合元素實(shí)現(xiàn)自然排序隙轻,可以用TreeSet

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市垢揩,隨后出現(xiàn)的幾起案子玖绿,更是在濱河造成了極大的恐慌,老刑警劉巖叁巨,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斑匪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡锋勺,警方通過(guò)查閱死者的電腦和手機(jī)蚀瘸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)狡蝶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人贮勃,你說(shuō)我怎么就攤上這事贪惹。” “怎么了寂嘉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵奏瞬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我泉孩,道長(zhǎng)硼端,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任寓搬,我火速辦了婚禮珍昨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘订咸。我一直安慰自己曼尊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布脏嚷。 她就那樣靜靜地躺著骆撇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪父叙。 梳的紋絲不亂的頭發(fā)上神郊,一...
    開(kāi)封第一講書(shū)人閱讀 49,837評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音趾唱,去河邊找鬼涌乳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛甜癞,可吹牛的內(nèi)容都是我干的夕晓。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼悠咱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蒸辆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起析既,我...
    開(kāi)封第一講書(shū)人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤躬贡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后眼坏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拂玻,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了檐蚜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魄懂。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖熬甚,靈堂內(nèi)的尸體忽然破棺而出逢渔,到底是詐尸還是另有隱情,我是刑警寧澤乡括,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站智厌,受9級(jí)特大地震影響诲泌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铣鹏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一敷扫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诚卸,春花似錦葵第、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至棠赛,卻和暖如春哮奇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背睛约。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工鼎俘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辩涝。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓贸伐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親怔揩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捉邢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1 集合類(lèi)—ListNo14 集合(廣義,指整個(gè)集合體系): 注意:集合中的元素都是引用數(shù)據(jù)類(lèi)型沧踏,只能是引用數(shù)...
    征程_Journey閱讀 617評(píng)論 0 1
  • 一翘狱、前言 Java集合主要分為三種類(lèi)型:Set(集)秘案、List(列表)和Map(映射)。 先簡(jiǎn)單說(shuō)下集合和數(shù)組的區(qū)...
    小怪聊職場(chǎng)閱讀 6,465評(píng)論 4 54
  • Java集合 作為一個(gè)Developer,Java集合類(lèi)是我們?cè)诠ぷ髦羞\(yùn)用最多的阱高、最頻繁的類(lèi)赚导。相比于數(shù)組(Arra...
    賈博巖閱讀 65,336評(píng)論 14 103
  • Java 集合框架系列 Java 集合框架_開(kāi)篇Java 集合框架_ListJava 集合框架_ArrayList...
    wo883721閱讀 821評(píng)論 0 3
  • 親愛(ài)的叮叮鐺鐺: 特種兵營(yíng)銷(xiāo)21天特訓(xùn)營(yíng),號(hào)稱(chēng)微商界的魔鬼訓(xùn)練營(yíng)赤惊,對(duì)于原本工作生活就很忙碌的你吼旧,確實(shí)是一個(gè)大大的挑...
    叮鐺_710b閱讀 266評(píng)論 0 0