中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java8中使用Comparator排序

發布時間:2021-05-21 16:29:02 來源:億速云 閱讀:326 作者:Leah 欄目:編程語言

這篇文章給大家介紹如何在Java8中使用Comparator排序,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Java8 中 Comparator 接口提供了一些靜態方法,可以方便于我們進行排序操作,下面通過例子講解下如何使用

對整數列表排序(升序)

List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8);
list.sort(Comparator.naturalOrder());
System.out.println(list);

對整數列表排序(降序)

List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8);
list.sort(Comparator.reverseOrder());
System.out.println(list);

根據對象屬性(年齡)進行排序

public class Test {
  public static void main(String[] args) {
    List<Person> personList = new ArrayList<>();
    personList.add(new Person("a", 2));
    personList.add(new Person("b", 4));
    personList.add(new Person("c", 7));
    // 升序
    personList.sort(Comparator.comparingInt(Person::getAge));
    // 降序
    personList.sort(Comparator.comparingInt(Person::getAge).reversed());
    System.out.println(personList);
  }

  public static class Person {
    private String name;
    private Integer age;

    public Person(String name, Integer age) {
      this.name = name;
      this.age = age;
    }

    public Integer getAge() {
      return age;
    }
    
    // ... toString 方法
  }
}

根據對象屬性(價格、速度)進行排序,需要注意的是,排序有先后之分,不同的順序會導致不同的結果

public class Test {
  public static void main(String[] args) {
    List<Computer> list = new ArrayList<>();
    list.add(new Computer("xiaomi",4000,6));
    list.add(new Computer("sony",5000,4));
    list.add(new Computer("dell",4000,5));
    list.add(new Computer("mac",6000,8));
    list.add(new Computer("micro",5000,6));
    // 先以價格(升序)、后再速度(升序)
  list.sort(Comparator.comparingInt(Computer::getPrice).thenComparingInt(Computer::getSpeed));
    // 先以速度(降序)、后再價格(升序)
   list.sort(Comparator.comparingInt(Computer::getSpeed).reversed().thenComparingInt(Computer::getPrice));
    // 先以價格(降序)、后再速度(降序)
    list.sort(Comparator.comparingInt(Computer::getPrice).thenComparingInt(Computer::getSpeed).reversed());
    System.out.println(list);
  }

  public static class Computer {
    private String name;
    private Integer price;
    private Integer speed;

    public Computer(String name, Integer price, Integer speed) {
      this.name = name;
      this.price = price;
      this.speed = speed;
    }

    public Integer getPrice() {

      return price;
    }

    public void setPrice(Integer price) {
      this.price = price;
    }

    public Integer getSpeed() {
      return speed;
    }

    public void setSpeed(Integer speed) {
      this.speed = speed;
    }

    // ... toString 方法
  }
}

Java有哪些集合類

Java中的集合主要分為四類:1、List列表:有序的,可重復的;2、Queue隊列:有序,可重復的;3、Set集合:不可重復;4、Map映射:無序,鍵唯一,值不唯一。

關于如何在Java8中使用Comparator排序就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

当阳市| 南安市| 南澳县| 北宁市| 乌拉特后旗| 萨嘎县| 托克逊县| 宁城县| 道真| 兴仁县| 沛县| 永川市| 长汀县| 金塔县| 泗洪县| 务川| 依兰县| 班玛县| 阜平县| 连平县| 荔波县| 宣化县| 鄄城县| 龙州县| 新巴尔虎右旗| 台湾省| 读书| 南和县| 中超| 冀州市| 景洪市| 织金县| 随州市| 孝感市| 河间市| 大足县| 绩溪县| 东乡族自治县| 家居| 池州市| 开远市|