亚洲国产日韩成人综合天堂_一区二区三区视频网站_国内小视频在线看_国产精品热视频_国产丝袜自拍_国产视频久久久久_麻豆精品免费视频入口_久久综合国产精品

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

當(dāng)前位置:首頁  >  IT問答庫  >  Java基礎(chǔ)知識

Java集合的兩種排序方法

發(fā)布:java基礎(chǔ)教程 2022-02-28 17:05

Java集合的兩種排序方法

推薦答案

  Java集合的兩種排序方法,Java集合的工具類Collections中提供了兩種排序的方法,分別是:

1.Collections.sort(List list)

2.Collections.sort(List list,Comparator c)

  diyi種稱為自然排序,參與排序的對象需實現(xiàn)comparable接口,重寫其compareTo()方法,方法體中實現(xiàn)對象的比較大小規(guī)則,示例如下:

IT技術(shù)

 

  實體類:(基本屬性,getter/setter方法,有參無參構(gòu)造方法,toString方法)

package test;

public class Emp implements Comparable {

  private String name;

  

    private int age;

 

    public String getName() {

 

        return name;

 

    }

 

    public void setName(String name) {

 

        this.name = name;

 

    }

 

    public int getAge() {

 

        return age;

 

    }

 

    public void setAge(int age) {

 

        this.age = age;

 

    }

 

    public Emp() {

 

        super();

 

    }

 

    public Emp(String name, int age) {

 

        super();

 

        this.name = name;

 

        this.age = age;

 

    }

 

    @Override

 

    public String toString() {

 

        return "Emp [name=" + name + ", age=" + age + "]";

 

    }

 

    @Override

 

    public int compareTo(Object o) {

 

        if(o instanceof Emp){

 

            Emp emp = (Emp) o;

 

//          return this.age-emp.getAge();//按照年齡升序排序

 

            return this.name.compareTo(emp.getName());//換姓名升序排序

 

        }

 

        throw new ClassCastException("不能轉(zhuǎn)換為Emp類型的對象...");

 

    }

 

}

 

  第二種叫定制排序,或自定義排序,需編寫匿名內(nèi)部類,new一個Comparator接口的比較器對象c,同時實現(xiàn)compare()其方法;

  然后將比較器對象c傳給Collections.sort()方法的參數(shù)列表中,實現(xiàn)排序功能;

  說明:diyi種方法不夠靈活,實體類實現(xiàn)了comparable接口后,會增加耦合,如果在項目中不同的位置需要根據(jù)不同的屬性調(diào)用排序方法時,需要反復(fù)修改比較規(guī)則(name還是按age),二者只能選擇其一,會起沖突.第二種就很好地解決了這個問題.在需要的地方,創(chuàng)建個內(nèi)部類的實例,重寫其比較方法即可.

 

jUnit4單元測試類代碼如下:

 

package test;

 

import java.util.ArrayList;

 

import java.util.Collections;

 

import java.util.Comparator;

 

import java.util.List;

 

import org.junit.BeforeClass;

 

import org.junit.Test;

 

public class TestSort {

 

    static List list = new ArrayList();

 

    //@BeforeClass注解標(biāo)注的方法會在其它測試方法執(zhí)行之前先執(zhí)行,

 

    //且只執(zhí)行一次.@Before注解標(biāo)注的方法會在每個測試方法之前執(zhí)行;

 

    //此處初始化集合只需要一次,因此使用@BeforeClass.

 

    @BeforeClass

 

    public static void init(){

 

        list.add(new Emp("tom",18));

 

        list.add(new Emp("jack",20));

 

        list.add(new Emp("rose",15));

 

        list.add(new Emp("jerry",17));

 

        System.out.println("排序前:");

 

        for(Object o : list){

 

            System.out.println(o);

 

        }

 

    }

 

    /**age升序排序*/

 

//  @Test

 

//  public void testSortAge(){

 

//      Collections.sort(list);

 

//      System.out.println("自然排序按age排序后:");

 

//      for(Object o : list){

 

//          System.out.println(o);

 

//      }

 

//  }

 

//

 

    /**name升序排序*/

 

    @Test

 

    public void testSortName(){

 

        Collections.sort(list);

 

        System.out.println("自然排序按name升序排序后:");

 

        for(Object o : list){

 

            System.out.println(o);

 

        }

 

    }

 

    /**使用Comparator比較器按age升序排序*/

 

    @Test

 

    public void testComparatorSortAge(){

 

        Collections.sort(list,new Comparator () {

 

            @Override

 

            public int compare(Object o1, Object o2) {

 

                if(o1 instanceof Emp && o2 instanceof Emp){

 

                    Emp e1 = (Emp) o1;

 

                    Emp e2 = (Emp) o2;

 

                    return e1.getAge() - e2.getAge();

 

                }

 

                throw new ClassCastException("不能轉(zhuǎn)換為Emp類型");

 

            }

 

        });

 

        System.out.println("使用Comparator比較器按age升序排序后:");

 

        for(Object o : list){

 

            System.out.println(o);

 

        }

 

    }

 

    /**使用Comparator比較器按name升序排序*/

 

    @Test

 

    public void testComparatorSortName(){

 

        Collections.sort(list,new Comparator () {

 

            @Override

 

            public int compare(Object o1, Object o2) {

 

                if(o1 instanceof Emp && o2 instanceof Emp){

 

                    Emp e1 = (Emp) o1;

 

                    Emp e2 = (Emp) o2;

 

                    return e1.getName().compareTo(e2.getName());

 

                }

 

                throw new ClassCastException("不能轉(zhuǎn)換為Emp類型");

 

            }

 

        });

 

        System.out.println("使用Comparator比較器按name升序排序后:");

 

        for(Object o : list){

 

            System.out.println(o);

 

        }

 

    }

 

}

 

右鍵空白位置>Run As>JUnit Test>

 

運(yùn)行結(jié)果如下:

 

排序前:

 

Emp [name=tom, age=18]

 

Emp [name=jack, age=20]

 

Emp [name=rose, age=15]

 

Emp [name=jerry, age=17]

 

自然排序按name升序排序后:

 

Emp [name=jack, age=20]

 

Emp [name=jerry, age=17]

 

Emp [name=rose, age=15]

 

Emp [name=tom, age=18]

 

使用Comparator比較器按age升序排序后:

 

Emp [name=rose, age=15]

 

Emp [name=jerry, age=17]

 

Emp [name=tom, age=18]Emp [name=jack, age=20]使用Comparator比較器按name升序排序后:Emp [name=jack, age=20]Emp [name=jerry, age=17]Emp [name=rose, age=15]Emp [name=tom, age=18]

  以上就是小編介紹的"Java培訓(xùn)分享:Java集合的兩種排序方法"的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。

最新問答資訊

01 unity用什么編程語言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語言 可以
5062 人關(guān)注

04 c語言難學(xué)嗎?c語言學(xué)好要多久?

語言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計要多久?報速成班靠譜嗎?

平面 設(shè)計 學(xué)習(xí) 時間
4238 人關(guān)注

相關(guān)問題

計算機(jī)前端和后端區(qū)別,到底該學(xué)哪一個?

互聯(lián)網(wǎng)行業(yè)的發(fā)展速度很快,有關(guān)市場上對于it行業(yè)的人才需求量越...

java和php的區(qū)別是什么?哪一個更難一些?

有很多零基礎(chǔ)的小白想要去學(xué)習(xí)編程技術(shù),那么可以考慮一下java和...

java與java script的區(qū)別有哪些?

相信大多數(shù)同學(xué)對java、java script都不會陌生,二者都是編程語...

java中什么是繼承?

繼承的特點(diǎn):只需明確一點(diǎn),java只支持單繼承,不支持多繼承,但...

java byte取值范圍是什么?

同學(xué)您好,java byte取值范圍是什么?針對這個問題可以看看下面的...

javascript和java有什么區(qū)別

1)基于對象和面向?qū)ο螅篔ava是一種真正的面向?qū)ο蟮恼Z言,即使是...

測一測
你知道多少IT梗

国产精品一区二区久久国产| 国产深喉视频一区二区| 精品人妻伦九区久久aaa片| 性欧美极品另类| 日韩精品1区2区3区| 国产原创精品在线| 视频一区二区三区中文字幕| 无码人妻精品一区二区三应用大全 | 成人18免费入口| 一本色道久久综合狠狠躁的番外| 久久久www免费人成精品| 伊人再见免费在线观看高清版| 亚洲第一av| 欧美亚洲国产成人精品| 国产麻豆剧果冻传媒视频杜鹃| 蜜臀国产一区| 综合激情国产一区| 在线观看成人一级片| 国产51人人成人人人人爽色哟哟 | 欧美日韩在线电影| 亚洲大片在线观看| 调教+趴+乳夹+国产+精品| 一区二区三区精品在线观看| 亚洲成在线观看| 一本到不卡免费一区二区| 日本道在线观看一区二区| 欧美日本韩国一区二区三区视频| 欧美精品一二三区| 亚洲国产欧美日韩精品| 亚洲欧美国产制服动漫| 日韩在线观看免费全| 欧美大片欧美激情性色a∨久久| 欧美激情一级欧美精品| 久久久久久久一| 日韩免费在线播放| 99中文视频在线| 亚洲 日韩 国产第一区| 男人添女人下部高潮视频在观看| 精品久久久久av| 中文字幕 欧美 日韩| 老熟妇一区二区| 老妇女50岁三级| 亚洲欧美偷拍一区| www.五月婷婷| 韩国18福利视频免费观看| 全彩无遮拦全彩口工漫画全彩| 草民福利视频| 青青国产在线| 成人影院在线观看| 欧美综合影院| 色综合综合网| 性感少妇一区| www.亚洲人| 一区二区三区中文字幕在线观看| 欧洲视频一区二区| 亚洲视频在线观看免费| 狠狠色丁香婷婷综合| 欧美美女性视频| 免费久久精品视频| 精品一区二区三区免费毛片| 国产乱视频在线观看播放| 99久久免费精品| 一女三黑人理论片在线| 欧美亚洲高清| 国产精品一区二区欧美| 影音先锋日韩av| 亚洲欧美不卡| 国产精品久久久久aaaa九色| 五月婷婷六月丁香| a一区二区三区亚洲| 5566成人精品视频免费| 青春有你2免费观看完整版在线播放高清 | 国产情侣第一页| 日韩精品一区二区三区中文字幕 | 色哟哟国产精品色哟哟| 26uuu国产电影一区二区| 亚洲av无码一区二区三区人| 午夜影院日韩| 成人亚洲激情网| 亚洲精品97久久| 91sao在线观看国产| 看高清中日韩色视频| 日韩一级理论片| 国产精品免费人成网站酒店| 蜜桃av噜噜一区二区三区麻豆| 搞黄网站免费观看| 中文字幕伦理免费在线视频 | 99热在线这里只有精品| 朝桐光av一区二区三区| 亚洲天堂999| 免费高清av| 两个人看的在线视频www| 五月开心六月丁香综合色啪| 黄一区二区三区| 欧美视频中文字幕在线| 久久综合电影一区| 视频二区一区| 国产真实乱人偷精品| 国产精品乱码一区二区| 91黑丝在线| 成人精品国产亚洲| 亚洲欧美视频| 精品国产鲁一鲁一区二区张丽| 久久精品国产久精国产一老狼 | 亚洲天堂在线视频观看| 国产偷激情在线| 青娱乐极品盛宴一区二区| 一区免费在线| 亚洲欧洲在线观看av| 中文字幕欧美国内| 青娱乐一区二区| 熟女少妇一区二区三区| 性猛交xxxx| 国产精品久久久久久福利| 区一区二视频| 中文字幕不卡在线观看| 亚洲人成免费电影| 水蜜桃亚洲精品| 一级片黄色录像| 国产麻豆麻豆| 国精产品一区二区三区有限公司| 久久婷婷av| 欧美日韩国产天堂| 国产精品视频内| 中文字幕一区二区三区四| 精品久久无码中文字幕| 日韩大片b站免费观看直播| 亚洲免费福利一区| 中文字幕国产一区| 欧美成人中文字幕在线| 妺妺窝人体色www看人体| 日韩成人在线免费视频| fc2ppv完全颜出在线播放| 91成人小视频| av在线一区二区三区| 中文字幕欧美精品日韩中文字幕| 在线观看日韩片| 成人午夜视频在线播放| 蜜臀在线观看| 久久久久美女| 91福利在线免费观看| 国产亚洲欧美另类一区二区三区| 黄色片网站在线播放| av免费在线电影| 欧美黄色网视频| 亚洲一区二区三区小说| 热久久美女精品天天吊色| 亚洲国产欧美日韩在线| 国产精品被窝福利一区| 免费精品一区| 亚洲精品成人少妇| 成人在线精品视频| 免费黄色国产视频| 麻豆电影传媒二区| 羞羞色午夜精品一区二区三区| 欧美自拍偷拍一区| 日本黑人久久| 日韩毛片久久久| 性感美女一区二区三区| 好吊色在线观看| 牛牛精品视频在线| 久草在线在线精品观看| 亚洲欧洲第一视频| 男女猛烈激情xx00免费视频| 国产人妻精品一区二区三区| 性xxxfreexxxx性欧美| 久久精品久久综合| 精品国产一区二区三区久久久| 波多野结衣天堂| 欧美另类黑人巨大videos| 日韩精品一区国产| 一区二区高清免费观看影视大全| 91精品啪在线观看麻豆免费| 精品人妻伦九区久久aaa片| 尤物免费看在线视频| 亚洲在线观看| 自拍偷拍亚洲一区| 欧美日韩理论片| 毛片毛片毛片| 日韩黄色大片| 日韩欧美一二三四区| 国产原创popny丨九色| 蜜桃av色综合| 婷婷国产在线综合| 春色成人在线视频| 国产稀缺真实呦乱在线| 国产在线观看网站| 奇米在线7777在线精品| 久热精品在线视频| 三级视频网站在线观看| 国产免费专区| 国产精品久久久久久久免费软件 | 久久久成人av| av无码一区二区三区| 秋霞在线观看av| 狂野欧美一区| 午夜精品久久久99热福利| 色欲人妻综合网| 欧美xxxx黑人又粗又长| 国产精品第13页|