大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 List集合可以排序嗎?

List集合可以排序嗎?

更新時(shí)間:2019-08-30 10:36:49 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2761次

  

最近有小伙伴們問小編List集合可以排序嗎?今天動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編專門針對(duì)此問題對(duì)大家介紹,List集合是可以排序的,List集合排序有兩種方法,下面就隨小編一起看看List集合排序的兩種方法是什么呢?


首先講一下Comparable接口和Comparator接口,以及他們之間的差異。有助于Collections.sort()方法的使用。


  1、Comparable自然規(guī)則排序


  //在自定義類Student里面實(shí)現(xiàn)Comparable接口,并重寫抽象方法compareTo(Student o);


  //Collections.sort(集合);


先看一個(gè)簡(jiǎn)單的例子:


 public static void main(String[] args) {  

        Listnums = new ArrayList();  

            nums.add(3);  

            nums.add(5);  

            nums.add(1);  

            nums.add(0);  

            System.out.println(nums);  

            Collections.sort(nums);  

            System.out.println(nums);  



  輸出結(jié)果:


  [3, 5, 1, 0]


  [0, 1, 3, 5]


  稍微復(fù)雜的List里面放一個(gè)復(fù)雜的對(duì)象


package core.java.collection.collections;  

  

public class User implements Comparable{  

      

    private int score;  

      

    private int age;  

      

    public User(int score, int age){  

        super();  

        this.score = score;  

        this.age = age;  

    }  

  

    public int getScore() {  

        return score;  

    }  

  

    public void setScore(int score) {  

        this.score = score;  

    }  

  

    public int getAge() {  

        return age;  

    }  

  

    public void setAge(int age) {  

        this.age = age;  

    }  

  

    @Override  

    public int compareTo(User o) {  

        int i = this.getAge() - o.getAge();//先按照年齡排序  

        if(i == 0){  

            return this.score - o.getScore();//如果年齡相等了再用分?jǐn)?shù)進(jìn)行排序  

        }  

        return i;  

    }  

      

}  

  

public static void main(String[] args) {  

        Listusers = new ArrayList();  

        users.add(new User(78, 26));  

        users.add(new User(67, 23));  

        users.add(new User(34, 56));  

        users.add(new User(55, 23));  

        Collections.sort(users);  

        for(User user : users){  

            System.out.println(user.getScore() + "," + user.getAge());  

        }  

}


  輸出結(jié)果:


  55,23


  67,23


  78,26


  34,56


  我們會(huì)發(fā)現(xiàn)sort(List)方法中List中的T必須實(shí)現(xiàn)Comparable接口,然后實(shí)現(xiàn)compareTo()方法,該方法的返回值0代表相等,正數(shù)表示大于,負(fù)數(shù)表示小于;為什么在簡(jiǎn)單例子中沒有看到實(shí)現(xiàn)Comparable接口呢?是因?yàn)镮nteger類其實(shí)自己已經(jīng)實(shí)現(xiàn)了Comparable接口,Java已經(jīng)給我們做好了。


  2、Comparator專門規(guī)則排序(l臨時(shí)排序)


  //新建一個(gè)實(shí)現(xiàn)了Comparator接口的類,并重寫抽象方法compare(Student o1, Student o2);


  //Collections.sort(集合,實(shí)現(xiàn)了Comparator接口的類的實(shí)例化對(duì)象);


  Collections提供的第二種排序方法sort(Listlist, Comparator c)


  先看例子:


package core.java.collection.collections;  

  

public class Students {  

      

    private int age;  

    private int score;  

      

    public Students(int age, int score){  

        super();  

        this.age = age;  

        this.score = score;  

    }  

      

    public int getAge() {  

        return age;  

    }  

    public void setAge(int age) {  

        this.age = age;  

    }  

    public int getScore() {  

        return score;  

    }  

    public void setScore(int score) {  

        this.score = score;  

    }  

}  

public static void main(String[] args) {  

        Liststudents = new ArrayList();  

        students.add(new Students(23, 100));  

        students.add(new Students(27, 98));  

        students.add(new Students(29, 99));  

        students.add(new Students(29, 98));  

        students.add(new Students(22, 89));  

        Collections.sort(students, new Comparator() {  

  

            @Override  

            public int compare(Students o1, Students o2) {  

                int i = o1.getScore() - o2.getScore();  

                if(i == 0){  

                    return o1.getAge() - o2.getAge();  

                }  

                return i;  

            }  

        });  

        for(Students stu : students){  

            System.out.println("score:" + stu.getScore() + ":age" + stu.getAge());  

        } 

}   


  輸出結(jié)果:


  score:89:age22


  score:98:age27


  score:98:age29


  score:99:age29


  score:100:age23


  從上面的例子我們可以看出Students類沒有實(shí)現(xiàn)Comparable接口,只是在sort()方法中多傳入一個(gè)參數(shù),只不過該參數(shù)是一個(gè)接口我們需要實(shí)現(xiàn)其compare方法。


以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)介紹的“List集合可以排序嗎?”的內(nèi)容,希望能夠幫助到大家,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


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


List集合可以排序視頻教程下載:http://m.dabaquan.cn/xiazai/2486.html



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

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 羞羞视频免费网站在线 | 香蕉依依精品视频在线播放 | 久久综合中文字幕一区二区三区 | 深夜在线免费视频 | 国产精品久久久久久久久免费hd | 四虎在线视频观看 | 国产 欧美 日产中文 | 亚洲国产精品综合一区在线 | 欧美激情亚洲激情 | 日韩欧美在线视频 | 久久精品亚洲一级毛片 | 日本一级毛片私人影院 | 九九99久久精品午夜剧场免费 | 最新国产福利片在线观看 | 日本黄色免费一级片 | 国产区亚洲区 | 在线视频这里只有精品 | 免费毛片观看 | 99这里只有精品 | 亚洲天堂欧美 | 久久久久青草线蕉亚洲麻豆 | 一级片特级片 | 欧美日韩亚洲精品一区二区 | 性做久久久久久久久男女 | 毛片基地视频 | 一级毛片a免费播放王色 | 亚洲人成在线观看 | 免费在线观看一级片 | 天天看片日日夜夜 | 国产成人综合久久精品亚洲 | 欧美一级黄色毛片 | 欧美日韩国产另类一区二区三区 | 色偷偷亚洲天堂 | 99精品国产久热在线观看66 | 日日插天天干 | 色综合欧美亚洲另类久久 | 亚洲天堂三区 | 中文字幕日韩欧美 | 亚洲最新在线视频 | 亚拍精品一区二区三区 | 人成xxxwww免费视频 |