java8新特性:利用Lambda處理List集合

來源:互聯網
上載者:User

標籤:color   分組   結果   str   tor   print   lis   inf   sum   

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());        });    }

運行結果:

2、list轉為Map
 public static void main(String[] args) {        List<User> userList = Lists.newArrayList();//存放apple對象集合        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);    }

運行結果:

3、將List分組:List裡面的對象元素,以某個屬性來分組
  public static void main(String[] args) {        List<User> userList = Lists.newArrayList();//存放apple對象集合        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);    }

運行結果:

4、過濾:從集合中過濾出來合格元素
 public static void main(String[] args) {        List<User> userList = Lists.newArrayList();//存放apple對象集合        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());        });    }

運行結果:

5、求和:將集合中的資料按照某個屬性求和
 public static void main(String[] args) {        List<User> userList = Lists.newArrayList();//存放apple對象集合        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集合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.