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

溫馨提示×

溫馨提示×

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

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

Java8怎樣通過Lambda處理List集合

發布時間:2021-02-01 13:58:01 來源:億速云 閱讀:225 作者:小新 欄目:編程語言

小編給大家分享一下Java8怎樣通過Lambda處理List集合,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Java 8新增的Lambda表達式,我們可以用簡潔高效的代碼來處理List。

1、遍歷

public static void main(String[] args) {
  List<User> userList = Lists.newArrayList();

  User user1 = new User(1L, "張三", 24);
  User user2 = new User(2L, "李四", 27);
  User user3 = new User(3L, "王五", 21);

  userList.add(user1);
  userList.add(user2);
  userList.add(user3);

  userList.stream().forEach(user ->{
   System.out.println(user.getName());
  });

 }

運行結果:

Java8怎樣通過Lambda處理List集合

2、list轉為Map

public static void main(String[] args) {
  List<User> userList = Lists.newArrayList();//存放user對象集合

  User user1 = new User(1L, "張三", 24);
  User user2 = new User(2L, "李四", 27);
  User user3 = new User(3L, "王五", 21);

  userList.add(user1);
  userList.add(user2);
  userList.add(user3);

  //ID為key,轉為Map
  Map<Long,User> userMap = userList.stream().collect(Collectors.toMap(User::getId, a -> a,(k1, k2)->k1));
  System.out.println(userMap);

 }

運行結果:

Java8怎樣通過Lambda處理List集合

3、將List分組:List里面的對象元素,以某個屬性來分組

public static void main(String[] args) {
  List<User> userList = Lists.newArrayList();//存放user對象集合

  User user1 = new User(1L, "張三", 24);
  User user2 = new User(2L, "李四", 27);
  User user3 = new User(3L, "王五", 21);
  User user4 = new User(4L, "張三", 22);
  User user5 = new User(5L, "李四", 20);
  User user6 = new User(6L, "王五", 28);

  userList.add(user1);
  userList.add(user2);
  userList.add(user3);
  userList.add(user4);
  userList.add(user5);
  userList.add(user6);

  //根據name來將userList分組
  Map<String, List<User>> groupBy = userList.stream().collect(Collectors.groupingBy(User::getName));
  System.out.println(groupBy);

 }

運行結果:

Java8怎樣通過Lambda處理List集合

4、過濾:從集合中過濾出來符合條件的元素

public static void main(String[] args) {
  List<User> userList = Lists.newArrayList();//存放user對象集合

  User user1 = new User(1L, "張三", 24);
  User user2 = new User(2L, "李四", 27);
  User user3 = new User(3L, "王五", 21);
  User user4 = new User(4L, "張三", 22);
  User user5 = new User(5L, "李四", 20);
  User user6 = new User(6L, "王五", 28);

  userList.add(user1);
  userList.add(user2);
  userList.add(user3);
  userList.add(user4);
  userList.add(user5);
  userList.add(user6);


  //取出名字為張三的用戶
  List<User> filterList = userList.stream().filter(user -> user.getName().equals("張三")).collect(Collectors.toList());
  filterList.stream().forEach(user ->{
   System.out.println(user.getName());
  });

 }

運行結果:

Java8怎樣通過Lambda處理List集合

5、求和:將集合中的數據按照某個屬性求和

public static void main(String[] args) {
  List<User> userList = Lists.newArrayList();//存放user對象集合

  User user1 = new User(1L, "張三", 24);
  User user2 = new User(2L, "李四", 27);
  User user3 = new User(3L, "王五", 21);
  User user4 = new User(4L, "張三", 22);
  User user5 = new User(5L, "李四", 20);
  User user6 = new User(6L, "王五", 28);

  userList.add(user1);
  userList.add(user2);
  userList.add(user3);
  userList.add(user4);
  userList.add(user5);
  userList.add(user6);


  //取出名字為張三的用戶
  int totalAge = userList.stream().mapToInt(User::getAge).sum();
  System.out.println("和:" + totalAge);

 }

運行結果:

Java8怎樣通過Lambda處理List集合

6、從List轉為Map,key與value 一 一對應

public static void main(String[] args) {
  List<User> userList = Lists.newArrayList();

  User user1 = new User(1L, "張三", 24);
  User user2 = new User(2L, "李四", 27);
  User user3 = new User(3L, "王五", 21);
  User user4 = new User(4L, "張三", 22);
  User user5 = new User(5L, "李四", 20);
  User user6 = new User(6L, "王五", 28);

  userList.add(user1);
  userList.add(user2);
  userList.add(user3);
  userList.add(user4);
  userList.add(user5);
  userList.add(user6);

  Map<Long/*Id*/,User> userMap = userList.stream().collect(Collectors.toMap(User::getId, user -> user));
  System.out.println("toMap:" + JSONArray.toJSONString(userMap));

 }

運行結果:

Java8怎樣通過Lambda處理List集合

看完了這篇文章,相信你對“Java8怎樣通過Lambda處理List集合”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

兴义市| 湖南省| 鄂尔多斯市| 绩溪县| 滨州市| 安阳市| 科技| 会泽县| 保康县| 鸡西市| 铜山县| 英吉沙县| 潞城市| 高青县| 万盛区| 永吉县| 莒南县| 南宁市| 乌鲁木齐市| 长沙市| 闽清县| 永年县| 安吉县| 望奎县| 穆棱市| 阿克苏市| 怀仁县| 伊通| 中山市| 綦江县| 扬中市| 府谷县| 兖州市| 治县。| 扎兰屯市| 营山县| 准格尔旗| 英吉沙县| 邵东县| 山阳县| 吉木乃县|