亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java8 用Lambda表達式給List集合排序的實現

發布時間:2020-08-31 20:29:03 來源:腳本之家 閱讀:173 作者:尋找風口的豬 欄目:編程語言

Lambda用到了JDK8自帶的一個函數式接口Comparator<T>。

準備一個Apple類

public class Apple {
  private int weight;
  private String color;

  public Apple(){}

  public Apple(int weight) {
    this.weight = weight;
  }

  public Apple(int weight, String color) {
    this.weight = weight;
    this.color = color;
  }
  
  setters();getters();toString(); 
}

步驟一:

public class AppleComparator implements Comparator<Apple> {
  @Override
  public int compare(Apple o1, Apple o2) {
    return o1.getWeight() - o2.getWeight();
  }
}

步驟二:準備一個List集合

ArrayList<Apple> inventory = Lists.newArrayList(
        new Apple(10, "red"),
        new Apple(5, "red"),
        new Apple(1, "green"),
        new Apple(15, "green"),
        new Apple(2, "red"));

步驟三:順序排序,三種方式

/**
 * 順序排序
 */
// 1、傳遞代碼,函數式編程
inventory.sort(new AppleComparator());
System.out.println(inventory);

// 2、匿名內部類
inventory.sort(new Comparator<Apple>() {
  @Override
  public int compare(Apple o1, Apple o2) {
    return o1.getWeight() - o2.getWeight();
  }
});

// 3、使用Lambda表達式
inventory.sort((a, b) -> a.getWeight() - b.getWeight());

// 4、使用Comparator的comparing
Comparator<Apple> comparing = comparing((Apple a) -> a.getWeight());
inventory.sort(comparing((Apple a) -> a.getWeight()));
//或者等價于
inventory.sort(comparing(Apple::getWeight));

步驟四:逆序排序

/**
 * 逆序排序
 */
// 1、 根據重量逆序排序
inventory.sort(comparing(Apple::getWeight).reversed()); 

步驟五:如果兩個蘋果一樣重,就得再找一個條件來進行排序

// 2、如果兩個蘋果的重量一樣重,怎么辦?那就再找一個條件進行排序唄
inventory.sort(comparing(Apple::getWeight).reversed().thenComparing(Apple::getColor));

https://gitee.com/play-happy/base-project

參考:

【1】《Java8實戰》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

邳州市| 镇安县| 阿坝县| 离岛区| 紫阳县| 巴中市| 临泉县| 泰顺县| 盐津县| 杭锦后旗| 沧源| 寻乌县| 延庆县| 磐安县| 泽库县| 长乐市| 天等县| 雷山县| 东宁县| 安阳市| 东兰县| 石嘴山市| 郸城县| 铜川市| 裕民县| 章丘市| 漳州市| 南丰县| 阿巴嘎旗| 涟源市| 城市| 健康| 玉田县| 宜宾市| 当涂县| 普兰店市| 城固县| 洛阳市| 普兰县| 阿拉善盟| 思南县|