黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java集合中Collections工具類都有哪些

Java集合中Collections工具類都有哪些

更新時間:2019-09-03 16:22:10 來源:動力節(jié)點(diǎn) 瀏覽3098次

  

今天動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為你分享“Java集合中Collections工具類都有哪些呢”,希望通過此文能夠幫助到j(luò)ava零基礎(chǔ)學(xué)員,下面就隨小編一起看看Java集合中Collections工具類都有哪些?


Collections工具類


  Collections 是一個操作 Collection(Set、 List )和 Map 等集合的工具類


  Collection和Collections的區(qū)別?


  Collection是用來存儲單列數(shù)據(jù)的集合接口,常用子接口有List和Set


  Collections是操作Collection的工具類。



  常用方法


  排序操作:


  reverse(List): 反轉(zhuǎn) List 中元素的順序


  shuffle(List): 對 List 集合元素進(jìn)行隨機(jī)排序


  sort(List): 根據(jù)元素的自然順序?qū)χ付?List 集合元素按升序排序


  sort(List, Comparator): 根據(jù)指定的 Comparator 產(chǎn)生的順序?qū)?List 集合元素進(jìn)行排序


  swap(List, int, int): 將指定 list 集合中的 i 處元素和 j 處元素進(jìn)行交換


  查找和替換:


  Object max(Collection): 根據(jù)元素的自然順序,返回給定集合中的最大元素


  Object max(Collection, Comparator): 根據(jù) Comparator 指定的順序,返回給定集合中的最大元素


  Object min(Collection)


  Object min(Collection, Comparator)


  int frequency(Collection, Object): 返回指定集合中指定元素的出現(xiàn)次數(shù)


  void copy(List dest,List src):將src中的內(nèi)容復(fù)制到dest中


  boolean replaceAll(List list, Object oldVal, Object newVal): 使用新值替換List 對象的所有舊值


  舉例:


  reverse反轉(zhuǎn)方法


@Test

public void test3() {

    // 測試reverse方法

    List list = new ArrayList();


    list.add(2121);

    list.add(-1);

    list.add(21);

    list.add(0);

    list.add(45);


    //反轉(zhuǎn)

    Collections.reverse(list);

    System.out.println(list);//[45, 0, 21, -1, 2121]

}


sort方法


@Test

public void test2() {

    // 測試sort方法

    List list = new ArrayList();


    list.add(2121);

    list.add(-1);

    list.add(21);

    list.add(0);

    list.add(45);


    //按升序排序

    Collections.sort(list);

    System.out.println(list);//[-1, 0, 21, 45, 2121]

}


  逆序排序


  int compareTo(T t)方法說明


  定義:比較此對象與指定對象的順序


  返回:負(fù)整數(shù)、零或正整數(shù)。如果該對象小于、等于或大于指定對象,則分別返回負(fù)整數(shù)、零或正整數(shù)。


@Test

public void test1() {

    // 測試sort方法

    List list = new ArrayList();


    list.add(2121);

    list.add(-1);

    list.add(21);

    list.add(0);

    list.add(45);

    // 降序

    Collections.sort(list, new Comparator() {

        @Override

        public int compare(Integer o1, Integer o2) {

            System.out.println(o2 - o1);

            return o2 - o1; // 此時o2-o1是大于0的

        }

    });

    System.out.println(list);//[-1, 0, 21, 45, 2121]

}



  對自定義對象的排序


  方法一:通過實(shí)現(xiàn)Comprable的compareTo方法進(jìn)行排序


// 實(shí)現(xiàn)Comparable接口

class User implements Comparable{


    private String name;


    private Integer age;


    public User(String name, Integer age) {

        this.name = name;

        this.age = age;

    }


    public String getName() {

        return name;

    }


    public void setName(String name) {

        this.name = name;

    }


    public Integer getAge() {

        return age;

    }


    public void setAge(Integer age) {

        this.age = age;

    }


    @Override

    public int compareTo(User o) {


        //首先比較年齡,如果年齡相同,則比較名字

        int flag = this.getAge().compareTo(o.getAge());

        if (flag == 0) {

            return this.getName().compareTo(o.getName());

        } else {

            return flag;

        }

    }


    @Override

    public String toString() {

        return "User{" +

                "name='" + name + '\'' +

                ", age=" + age +

                '}';

    }



測試方法


// 自定義對象的排序,比如對User對象按照年齡排序,再按照name排序

@Test

public void testSort() {

    User f1 = new User("tony", 19);

    User f2 = new User("jack", 16);

    User f3 = new User("tom", 80);

    User f4 = new User("jbson", 44);

    User f5 = new User("jason", 44);

    User f6 = new User("tom", 12);


    Listlist = new ArrayList();

    list.add(f1);

    list.add(f3);

    list.add(f4);

    list.add(f2);

    list.add(f5);

    list.add(f6);

    Collections.sort(list);


    for (User o : list) {

        System.out.println(o.getAge() + "-->" + o.getName());

    }

}


輸出:


12-->tom

16-->jack

19-->tony

44-->jason

44-->jbson

80-->tom



copy方法


List dest = Arrays.asList(new Object[list.size()]);



@Test

public void testCopy(){

    List list = new ArrayList();


    list.add(2121);

    list.add(-1);

    list.add(21);

    list.add(0);

    list.add(45);


    //錯誤寫法:此時dest集合為長度為0,報錯IndexOutOfBoundsException: Source does not fit in dest

//        List dest = new ArrayList();

//        Collections.copy(dest,list);

//        System.out.println(dest.size());

//        System.out.println(dest);

    // 正確寫法:先造一個值為null,長度為list長度的集合。再拷貝

    List dest = Arrays.asList(new Object[list.size()]);

    System.out.println(dest.size()); // 5

    Collections.copy(dest,list);

    System.out.println(dest);

}


以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“Java集合中Collections工具類都有哪些”的內(nèi)容,希望能夠幫助到大家,更多精彩內(nèi)容請繼續(xù)關(guān)注動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。


相關(guān)免費(fèi)視頻教程推薦


 javase—— Collection集合視頻教程下載:http://m.ilovecolors.com.cn/xiazai/2510.html



提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日本一本一道久久香蕉免费 | 99精品视频3| 波多野结衣在线观看一区二区 | 午夜在线视频国产 | 特级夫妻大片免费在线播放 | 欧美日本高清一本二本三本 | 波多野结衣一区二区在线 | 色原网站| 亚洲高清成人欧美动作片 | 国产成人精品综合在线观看 | 亚洲国产日韩欧美综合久久 | 在线观看男女爱视频网站 | 夜夜夜夜曰天天天天拍国产 | 国产成人一区二区三区 | 黄色污污在线观看 | 欧美在线看片a免费观看 | 最近中文2019字幕第二页 | 欧美成人免费观看 | 香蕉免费在线视频 | 国产亚洲精品综合在线网址 | 中文字幕在线观看一区二区 | 国产裸舞在线一区二区 | 小明成人永久视频在线观看 | 美腿丝袜中文字幕 | 久久天天躁狠狠躁夜夜免费观看 | 一级毛片毛片毛片毛毛片 | 翁熄系列乱吃奶小玲 | 欧美成人精品三级网站 | 在线亚洲黄色 | 女性一级全黄生活片免费看 | 中文字幕在线观看第一页 | 天天干天天天天 | 久久网伊人 | 福利视频网站 | 国产亚洲综合一区 柠檬导航 | 久久综合激情 | 国产黄视频在线观看 | 日韩欧美亚洲综合久久99e | 青草青草视频2免费观看 | 天堂在线中文网 | 国产日韩欧美综合在线 |