zoukankan      html  css  js  c++  java
  • Java 8 Stream 使用 harara

    示例如下:

    package com.stream;
    
    import java.util.*;
    import java.util.stream.Collectors;
    
    /**
     * @author: void
     * @date: 2021-10-21 18:09
     * @description: 
     * @version: 1.0
     */
    public class Stream {
    
    
        public static void main(String[] args) {
            List<User> userList = getUserList();
    
            //foreach来迭代流的数据,迭代输出
            System.out.println("----------------forEach()------------------");
            userList.forEach(System.out::println);
    
            System.out.println("----------------map()------------------");
            //map方法用于映射每个元素到对应结果
            List users = userList.stream().map(e->{
                User user = new User();
                user.setName(e.getName());
                user.setAge(e.getAge()+5);
                return e;
            }).collect(Collectors.toList());
            users.forEach(System.out::println);
    
            //取userlist中每个实体的name字段组成list
            List<String> nameList = userList.stream().map(e->e.getName()).collect(Collectors.toList());
            nameList.forEach(System.out::println);
    
            System.out.println("---------------filter()-------------------");
           //filter 方法用于通过设置的条件过滤出元素。
            List<User> userList2 = userList.stream().filter(user -> {
                    return user.getAge()>=23;
            }).collect(Collectors.toList());
            userList2.forEach(System.out::println);
    
            System.out.println("----------------limit()------------------");
            //limit 方法用于获取指定数量的流
            List<User> userList3 = userList.stream().limit(1).collect(Collectors.toList());
            userList3.forEach(System.out::println);
    
            //sorted用于对流进行排序
            System.out.println("----------------sorted()------------------");
            List list = Arrays.asList(2,3,4,1).stream().sorted().collect(Collectors.toList());
            list.forEach(System.out::println);
    
            System.out.println("----------------distinct()------------------");
            //distinct 去掉集合内重复元素
            List list1 = Arrays.asList(1,1,4,5,6,7,8,6).stream().distinct().collect(Collectors.toList());
            System.out.println(list1);
    
    
            //Collectors
            System.out.println("-----------------collect(Collectors.xxx)-----------------");
            //返回列表,上述示例都是返回列表
            //返回字符串 Collectors.joining()
            String names=userList.stream().map(e->e.getName()).collect(Collectors.joining(","));
            System.out.println(names);
    
            //返回Map  Collectors.toMap()
            Map<String,User> nameMap=userList.stream().collect(Collectors.toMap(User::getName, user -> {return user;}));
            //如果userList里面存在相同的key会报错,传入合并方法  (u,v)->u :当key相同时,取第一个
            Map<String,User> nameMap2=userList.stream().collect(Collectors.toMap(User::getName, user -> {return user;},
                    (u,v)->u));
            System.out.println(nameMap2);
    
        }
    
    
        /**
         * 获取用户列表
         * @return
         */
        public static List<User> getUserList(){
            List<User> users = new ArrayList<>();
            User user = null;
            for(int i=0;i<3;i++){
                user = new User("测试"+i,17+i,0);
                users.add(user);
            }
            return users;
        }
    }
    作者:小念
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    (转)剖析Delphi中的构造和析构
    求排列组合
    用链表写的猴子选大王
    查找文件
    在Delphi程序中应用IE浏览器控件
    汉字转UNICODE?
    webbrowser去掉边框
    自己写的猴子选大王
    数据库IDE查询实例
    Compiz Check测试Linux桌面3D兼容性
  • 原文地址:https://www.cnblogs.com/kiko2014551511/p/15540965.html
Copyright © 2011-2022 走看看