• Java8 新特性 Stream Api 之集合遍历


    新特性#

    比较新的的特性就是流Stream ,和lambda表达式

    图上面就是一些常用的方法,延迟方法,就是对数据作处理中间方法,终结方法就是最后符合好处理的数据结束方法

    延迟方法和lambda表达式的延迟加载的原理一样,它可以进行链式编程如list.().filter().map().limit(),可以一直点下去最后一步由方法为count或者foreach加载数据

    stream集合遍历forEach#

    遍历list直接list.stream().forEach进行遍历

    List<String> a=new ArrayList<>();
    
    a.add("judy");
    
    a.add("Tom");
    
    //lambda表达式
    
    a.stream().forEach(s -> System.out.println(s));
    
    
    
    a.stream().forEach(s -> {
    
        System.out.println(s);
    
        System.out.println(2);
    
    });

    集合复杂对象遍历

    Student student = new Student();
    
    student.setAddress("上海市黄浦区陆家浜路");
    
    student.setName("judy");
    
    student.setAge(26);
    
    List<Student> students = new ArrayList<>();
    
    students.add(student);
    
    
    //lambda表达式
    
    students.stream().forEach(student1 -> System.out.println(student1.name));
    
    
    
    students.stream().forEach(student1 -> {
    
        System.out.println(student1.name);
    
        System.out.println(student1.age);
    
        System.out.println(student1.address);
    
    });

    stream条件过滤filter#

    使用list.stream().filter()进行过滤条件,为true 条件成立才会执行下面语句

    List<String> a = new ArrayList<>();
    
    a.add("judy");
    
    a.add("Tom");
    
    a.add("   ");
    
    //lambda表达式  是judy才打印
    
    a.stream().filter(s -> s.equals("judy")).forEach(s -> System.out.println(s));
    
    // 不是空才打印
    
    a.stream().filter(s -> !s.isEmpty()).forEach(s -> System.out.println(s));

    复杂对象多条件判断过滤

    Student student = new Student();
    
    student.setAddress("上海市黄浦区陆家浜路");
    
    student.setName("judy");
    
    student.setAge(26);
    
    List<Student> students = new ArrayList<>();
    
    students.add(student);
    
    
    //lambda表达式  学生年纪大于28才打印
    
    students.stream().filter(student1 -> student1.getAge()>28).forEach(student1 -> System.out.println(student1.name));
    
    
    //多个条件过滤,同时成立 学生姓名是以张开头,并且长度等于3 ,lambda表达式 打印
    
    students.stream().filter(s->s.getName().startsWith("张")).filter(s-> s.getName().length() == 3).forEach(System.out::println);
    
    
    students.stream().forEach(student1 -> {
    
        System.out.println(student1.name);
    
        System.out.println(student1.age);
    
        System.out.println(student1.address);
    
    });

    https://www.cnblogs.com/kenx/p/15138599.html

    故乡明
  • 相关阅读:
    Jmeter22:同步定时器-集合点功能
    Jmeter21:固定定时器-死等的方法
    Jmeter20:上传与下载
    Jmeter19:token接口
    Jmeter18:cookie接口-请求提示no cookie的解决方法
    Jmeter17:json提取器-提取数据的方法
    Jmeter16:forEach控制器-针对,在不知道取到得参数有多少?但是要全部执行每一条的情况
    Jmeter15:仅一次控制器-针对在每个并发用户都要调用一次的情况
    Jmeter14:随机顺序执行器-每个请求都执行,当是顺序打乱的情况
    Jmeter13:常用的逻辑控制器-if-随机-仅一次-switch...
  • 原文地址:https://www.cnblogs.com/luweiweicode/p/15143134.html
Copyright © 2020-2023  润新知