1. 程式人生 > 其它 >jdk8之stream流新特性

jdk8之stream流新特性

技術標籤:javajavalambdastream

Java 8 API添加了一個新的抽象稱為流Stream,可以讓你以一種宣告的方式處理資料,極大的簡潔了你的程式碼,乾淨,直觀。

遍歷

        List<String> lists=Arrays.asList("1","2","3","4");
        lists.stream().forEach(System.out::println);

過濾

    List<User> users= new ArrayList<User>();
    users.add(new User("小明",18));
    users.add(new User("老王",45));
    users.add(new User("小紅",15));
    users.stream().filter(u->u.getAge()>17).forEach(System.out::println);

結果

排序

     //根據元素排序
        List<Integer> list = Arrays.asList(1,3,40,25,16,17,100);
        list = list.stream().sorted().collect(Collectors.toList());
        System.out.println("正序:"+list);
        list  = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
        System.out.println("倒序:"+list);
        //根據屬性排序
        List<User> users =new ArrayList();
        users.add(new User("小一",18));
        users.add(new User("小二",30));
        users.add(new User("小三",25));
        users.add(new User("小四",60));
        users.add(new User("小五",6));
        users =users.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());
        System.out.println("屬性升序:"+users);
        users =users.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());
        System.out.println("屬性降序:"+users);

結果

Map操作

場景:獲取某個屬性的集合

       List<User> users =new ArrayList();
        users.add(new User("小一",18));
        users.add(new User("小二",30));
        users.add(new User("小三",25));
        users.add(new User("小四",60));
        users.add(new User("小五",6));
        List<Integer> list =users.stream().map(User::getAge).collect(Collectors.toList());
        System.out.println("年齡集合:"+list);

結果集

以上列舉了我經常使用的,當然還有其他的,可以根據自己的業務場景進行混合使用。