JavaSE-Collection

集合

java.util.Collection 集合-用于存儲一組元素,提供了用于維護集合的相關操作靖榕,它派生了兩個接口标锄,List-可重復集,Set-不可重復集

  • boolean add(Object obj) 向集合中添加元素茁计,添加成功返回true
Collection<String> c = new ArrayList<String>();//尖括號中為集合的泛型料皇,基本上每創(chuàng)建一個集合都應該為集合創(chuàng)建一個泛型,其規(guī)定了集合當中
存儲的數(shù)據(jù)類型星压,利于維護和錯誤檢查
c.add("a");c.add("b");c.add("c");
System.out.println(c.add("a"));//true
System.out.println(c);//[a,b,c]
  • int size() 返回集合當中元素的個數(shù)践剂。它與數(shù)組的長度length有很大區(qū)別,數(shù)組的長度在聲明數(shù)組時就以固定娜膘,要想超過數(shù)組長度再添加元素必須擴容逊脯。而集合的size表示集合當中元素的具體個數(shù),沒有限制
System.out.println(c.size());//3
  • boolean isEmpty() 判斷集合是否為空
System.out.println(c.isEmpty());//false
  • void clear() 清空集合元素
c.clear();
System.out.println(c.size());//0
System.out.println(c.isEmpty());//true
  • boolean contains(Object obj) 判斷當前集合是否包含某個元素竣贪,判斷的依據(jù)是根據(jù)元素的equals方法比較的結果而定军洼,如果比較結果為true,則視為包含
//先聲明一個Point類演怎,包含x匕争、y兩個成員變量,提供帶參構造爷耀,equals方法等在此不做贅述甘桑,可由eclipse自動生成
Collection<Object> c = new ArrayList<Object>();
        c.add(new Point(1,2));
        c.add(new Point(3,4));
        c.add(new Point(5,6));
        System.out.println(c);//[(1,2), (3,4), (5,6)]
        Point p = new Point(1,2);
        System.out.println("是否包含?"+c.contains(p));//true
  • 集合存放元素歹叮,實際存放的是元素的引用
Collection<Point> c = new ArrayList<Point>();
        
        Point p = new Point(1,2);
        System.out.println(p);//(1,2)
        c.add(p);
        System.out.println(c);//[(1,2)]
        
        p.setX(2);
        System.out.println(p);//(2,2)
        System.out.println(c);//[(2,2)]
  • boolean remove(Object obj) 刪除一個集合元素 刪除成功返回true 刪除元素同樣利用元素的equals方法將當前元素與集合中的元素進行比較跑杭,比較結果為true則刪除該元素
Point p = new Point(1,2);
c.remove(p);
System.out.println(c);//[(3,4), (5,6)]
集合的批量操作
  • List 有序 可重復集合 Set 無序 不可重復集合
        /**
         * List 有序 可重復
         */
        Collection<String> c1 = new ArrayList<String>();
        c1.add("c");
        c1.add("c++");
        c1.add("Java");
        System.out.println("c1:"+c1);//c1:[c, c++, Java]
        /**
         * Set 無序 不可重復
         */
        Collection<String> c2 = new HashSet<String>();
        c2.add("Android");
        c2.add("ios");
        c2.add(".net");
        c2.add("Java");
        c2.add("ios");
        System.out.println("c2:"+c2);//c2:[Java, .net, ios, Android]
  • boolean addAll(Collection c) 取并集操作 將一個集合添加到另一個集合中,添加后集合的元素發(fā)生了變化則返回true
boolean flag = c1.addAll(c2);
System.out.println(flag+" "+c1);//true [c, c++, Java, Java, .net, ios, Android] 由于c1為可重復集咆耿,所以會有兩個Java
  • boolean containsAll(Collection c) 是否包含一個集合中的全部元素
Collection<String> c3 = new ArrayList<String>();
        c3.add("java");
        c3.add("android");
boolean isContains = c1.containsAll(c3);
System.out.println("是否全包含艘蹋?"+isContains);//true
  • void removeAll(Collection c) 刪除當前集合中兩個集合的共有元素
c1.removeAll(c2);
System.out.println(c1);//[c,c++]
集合的遍歷

Collection提供了統(tǒng)一的集合遍歷方式-迭代器模式
java.util.Iterator是一個接口,規(guī)定了用于遍歷集合的相關方法票灰,不同的集合提供了相應的實現(xiàn)類女阀,無需記住他們的名字宅荤,只將他們當做Iterator即可
遍歷集合遵循:問-取-刪 的原則,其中刪除不是必須操作

  • boolean hasNext() 問的過程浸策,該方法判斷集合中是否有元素可以取出
  • E next() 取的過程 取出該元素
  • void remove() 刪除元素
Iterator<String> it = c.Iteratro();//獲取用于遍歷當前集合的迭代器
while(it.hasNext()){
    String str = it.next();
    if("c".equals(str)){
        it.remove();//在使用迭代器遍歷集合時不要用集合的方式刪除元素c.remove(str),否則會拋出異常
   }
   System.out.println(str);//a b
}
System.out.println(c);[a,b]

增強型for循環(huán)遍歷集合

for(String str : c){
    System.out.println(str);//a b c
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冯键,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子庸汗,更是在濱河造成了極大的恐慌惫确,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚯舱,死亡現(xiàn)場離奇詭異改化,居然都是意外死亡,警方通過查閱死者的電腦和手機枉昏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門陈肛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兄裂,你說我怎么就攤上這事句旱。” “怎么了晰奖?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵谈撒,是天一觀的道長。 經(jīng)常有香客問我匾南,道長啃匿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任蛆楞,我火速辦了婚禮立宜,結果婚禮上,老公的妹妹穿的比我還像新娘臊岸。我一直安慰自己橙数,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布帅戒。 她就那樣靜靜地躺著灯帮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逻住。 梳的紋絲不亂的頭發(fā)上钟哥,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音瞎访,去河邊找鬼腻贰。 笑死,一個胖子當著我的面吹牛扒秸,可吹牛的內(nèi)容都是我干的播演。 我是一名探鬼主播冀瓦,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼写烤!你這毒婦竟也來了翼闽?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤洲炊,失蹤者是張志新(化名)和其女友劉穎感局,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暂衡,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡询微,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狂巢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撑毛。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖隧膘,靈堂內(nèi)的尸體忽然破棺而出代态,到底是詐尸還是另有隱情寺惫,我是刑警寧澤疹吃,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站西雀,受9級特大地震影響萨驶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜艇肴,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一腔呜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧再悼,春花似錦核畴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莺奸,卻和暖如春丑孩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灭贷。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工温学, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人甚疟。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓仗岖,卻偏偏與公主長得像逃延,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子箩帚,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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

  • 1. Java基礎部分 基礎部分的順序:基本語法真友,類相關的語法,內(nèi)部類的語法紧帕,繼承相關的語法盔然,異常的語法,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • Redis 數(shù)據(jù)結構簡介 Redis 可以存儲鍵與5種不同數(shù)據(jù)結構類型之間的映射是嗜,這5種數(shù)據(jù)結構類型分別為Stri...
    DreamerRzc閱讀 236,866評論 26 273
  • 又做了一篇作文翻譯愈案,越來越有手感 準備了方案 消化了甲方的策劃 做了小狗錢錢的筆記 明天周五!準備健身和看書 還是...
    rrreason閱讀 190評論 0 0
  • 補博瑞閱讀 174評論 0 0
  • 聽著寧靜優(yōu)美的鋼琴曲 “My hope is you” 散落在胸前的中長發(fā) 黑色披肩的韓式襯衫 迎著車窗外飄進的風...
    Soulhome閱讀 250評論 4 1