DAY15Java語言入門基礎教學9 集合

集合

  1. 集合類存放于java.util包中态罪。
    集合類存放的都是對象的引用噩茄,而非對象本身。
  2. 集合類型主要有3種:set(集)复颈、list(列表)和map(映射)绩聘。
  3. 集合接口分為:Collection和Map,list耗啦、set實現(xiàn)了Collection接口

Collection抽象接口

定義集合的相關操作
List接口 列表 數(shù)組 特點:有序 可重復
ArrayList
LinkedArrayList
Set集合 特點:無序 不重復

Map接口

映射關系 Key-Value 鍵值對 鍵不能相同

Collection接口的方法

       Collection<String> text = new ArrayList();
        text.add("Jack");
        text.add("Merry");
        System.out.println(text);

        //刪除一個對象
        text.remove("Jack");
        System.out.println(text);

        //獲取元素個數(shù)
        System.out.println(text.size());

        //判斷是否包含一個元素
        if(text.contains("Merry")){
            System.out.println("有");
        }else{
            System.out.println("無");
        }

        //判斷是否為空
        if(text.isEmpty()){
            System.out.println("kon");
        }

        //判斷兩個集合是否相同
        Collection<String> t2 =  new ArrayList<>();
        t2.add("Jack");
        t2.add("Merry");
        if(text.equals(t2)){
            System.out.println("相同");
        }else{
            System.out.println("不同");
        }
        //清空
        text.clear();;
        System.out.println(text);

集合的遍歷

//1.使用Iterator來遍歷
        //hasNext 判斷是否有對象
        //next 獲取下一個對象
        //remove 刪除當前遍歷過后的對象
        Iterator iterator = t2.iterator();

        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //2.for-each
        for(String obj: t2){
            System.out.println(obj);
        }
        //3.for - i
        for(int i = 0; i < t2.size(); i++){
            System.out.println(t2);
        }

List接口 extends Collection

        //ArrayList
        //LinkedArrayList
        //集合里面只能存放對象
        //自動將基本數(shù)據(jù)類型包裝為對應的類
        ArrayList<Integer> score = new ArrayList<>();
        score.add(2);
        score.add(3);//在末尾添加
        score.add(0,1);//在指定位置插入
        System.out.println(score);

        //訪問指定元素
        score.get(1);

        //修改一個元素
        score.set(0,0);
        System.out.println(score);

        //刪除
        score.remove(0);//刪除指定位置的元素
        System.out.println(score);

        score.remove((Integer) 2); //刪除指定的對象
        System.out.println(score);

        score.clear();//刪除所有 清空
        System.out.println(score);

        ArrayList<Integer> a2 = new ArrayList<>();
        a2.add(1);
        a2.add(2);
        a2.add(3);

        //將另外一個集合里面的內(nèi)容添加到當前集合中
        score.addAll(a2);
        System.out.println(score);

        ArrayList<Integer> a3 = new ArrayList<>();
        a3.add(1);
        a3.add(2);
        score.retainAll(a3);//取兩個集合的交集
        System.out.println(score);

        //訪問某個對象在集合里面的索引
        ArrayList<Integer> a4 = new ArrayList<>();
        a4.add(1);
        a4.add(2);
        a4.add(2);
        a4.add(1);
        System.out.println(a4.indexOf(1));
        System.out.println(a4.lastIndexOf(1));

        //將ArrayList 轉化為普通數(shù)組
        Integer[] objects = new Integer[a4.size()];
        a4.toArray(objects);
        a4.toArray(objects);
        for(Integer i:objects){
            System.out.println(i);
        }
        Object[] objects1 = a4.toArray();
        for(Object i: objects1){
            System.out.println(1);
        }

        Iterator iterator = a4.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

        //獲取集合某個范圍的子集合
        List<Integer> integers = a4.subList(1,2);
        System.out.println(integers);
        
        ArrayList<Integer> nums=new ArrayList<>();
        nums.add(1);
        nums.add(2);
        nums.add(3);
        nums.add(4);

        //Lambda表達式
        //nums.removeIf(obj->obj%2==0);
        for(Integer obj:nums){
            if(obj%2==0){
                nums.remove(obj);
            }
        }
        for(int i=0;i<nums.size();i++){
            Integer obj=nums.get(i);
            if(obj%2==0){
                nums.remove(i);
                i--;
            }
        }
        System.out.println(nums);

閉包

enclusure 把函數(shù)作為一個方法的參數(shù)

class ArrayClass{
    public void test(int[] target, Show s){
        for (int element: target){
            s.customShow(element);
        }
    }
}

//必須是接口 這個接口里面只有一個方法
interface Show{
    void customShow(int element);
}

class PXDClass implements Show{
    @Override
    public void customShow(int element) {
        System.out.println(element);
    }
}
//1.使用方式: 定義一個類實現(xiàn)接口
//        ArrayClass ac = new ArrayClass();
//        int[] num = {1,2,3,4,5,6};
//        PXDClass pc = new PXDClass();
//        ac.test(num, pc);

//2.使用匿名類
//        ArrayClass ac = new ArrayClass();
//        int[] num = {1,2,3,4,5,6};
//        ac.test(num, new Show() {
//            @Override
//            public void customShow(int element) {
//                System.out.println(element);
//            }
//        });

//3. 使用Lambda表達式
//如果參數(shù)是一個接口類對象君纫,且接口里面只有一個方法
//可以省略方法名
//        ArrayClass ac = new ArrayClass();
////        int[] num = {1,2,3,4,5,6};
////        ac.test(num, (int element) -> {
////            System.out.println(element);
////        });

體會

今天的內(nèi)容超級無敵枯燥,人超級困

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芹彬,一起剝皮案震驚了整個濱河市蓄髓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舒帮,老刑警劉巖会喝,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玩郊,居然都是意外死亡肢执,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門译红,熙熙樓的掌柜王于貴愁眉苦臉地迎上來预茄,“玉大人,你說我怎么就攤上這事侦厚〕苌拢” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵刨沦,是天一觀的道長诗宣。 經(jīng)常有香客問我,道長想诅,這世上最難降的妖魔是什么召庞? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮来破,結果婚禮上篮灼,老公的妹妹穿的比我還像新娘。我一直安慰自己徘禁,他們只是感情好诅诱,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晌坤,像睡著了一般逢艘。 火紅的嫁衣襯著肌膚如雪旦袋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天它改,我揣著相機與錄音疤孕,去河邊找鬼。 笑死央拖,一個胖子當著我的面吹牛祭阀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鲜戒,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼专控,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遏餐?” 一聲冷哼從身側響起伦腐,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎失都,沒想到半個月后柏蘑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡粹庞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年咳焚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庞溜。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡革半,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出流码,到底是詐尸還是另有隱情又官,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布旅掂,位于F島的核電站赏胚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏商虐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一崖疤、第九天 我趴在偏房一處隱蔽的房頂上張望秘车。 院中可真熱鬧,春花似錦劫哼、人聲如沸叮趴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眯亦。三九已至伤溉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妻率,已是汗流浹背乱顾。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宫静,地道東北人走净。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像孤里,于是被迫代替她去往敵國和親伏伯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

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

  • 四捌袜、集合框架 1:String類:字符串(重點) (1)多個字符組成的一個序列说搅,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 738評論 0 2
  • 一虏等、基礎知識:1弄唧、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,369評論 0 4
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX閱讀 870評論 0 1
  • 轉載自:Java集合框架實例 1- 介紹 集合是程序和語言的基本思想博其。應用程序通常都會應用到集合套才,例如雇員的信息,...
    01_小小魚_01閱讀 390評論 0 1
  • 集合類簡介 為什么出現(xiàn)集合類傻寂?面向對象語言對事物的體現(xiàn)都是以對象的形式,所以為了方便對多個對象的操作携兵,就要對對象進...
    阿敏其人閱讀 1,412評論 0 7