JAVA Stream流常用方法介绍

**JAVA Stream流常用方法介绍

1.allMatch(Predicate<? super T> predicate)
返回此流的所有元素是否与提供的谓词匹配。

   public class TestDemo {

    public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        //stringList.add("2");
        //stringList.add("3");


        System.out.println(stringList.stream().allMatch(e -> e.equals("1")));


    }


}
控制台输出 true

**2.count() **
返回此流中的元素数。

public class TestDemo {

    public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");


        System.out.println(stringList.stream().count());


    }


}
控制台输出 3

**3.distinct() **
返回由该流的不同元素(根据 Object.equals(Object) )组成的流

public class TestDemo {

    public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");


      stringList.stream().distinct().forEach(e->System.out.println(e));


    }


}
``
控制台输出
1
2
3

**4.filter() **
返回由与此给定谓词匹配的此流的元素组成的流。

public class TestDemo {

    public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");


      stringList.stream().distinct().filter(e->e.equals("2")).forEach(e->System.out.println(e));


    }


}
控制台输出 
2

**5.findFirst() **
返回描述此流的第一个元素的Optional如果流为空,则返回一个空的Optional 。

 public class TestDemo {

    public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");


      //stringList.stream().distinct().filter(e->e.length()==1).findFirst().forEach(e->System.out.println(e));

        System.out.println(stringList.stream().distinct().filter(e->e.length()==1).findFirst().get());

    }


}
控制台输出
1

**6. forEach() **
对此流的每个元素执行操作。

 public class TestDemo {

    public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");


      stringList.stream().distinct().filter(e->e.length()==1).forEach(e->System.out.println(e));

       // System.out.println(stringList.stream().distinct().filter(e->e.length()==1).findFirst().get());


    }
    控制台输出
    1
    2
    3

**7. limit(long maxSize) **
返回由此流的元素组成的流,截短长度不能超过 maxSize

  public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");


      stringList.stream().distinct().limit(2).forEach(e->System.out.println(e));

       // System.out.println(stringList.stream().distinct().filter(e->e.length()==1).findFirst().get());


    }
    控制台输出
    1
    2

**8. map(Function<? super T,? extends R> mapper) **
返回由给定函数应用于此流的元素的结果组成的流。

  public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");


      ;

       System.out.println(stringList.stream().distinct().limit(2).map(e->Integer.parseInt(e)).count());


    }
    控制台输出
    2

**9. MAP集合 **

   public  static  void main(String args[]) {

        /**
         * stream流练习
         */

        List<String> stringList =new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("3");

        Map<String,String> map = new HashMap<>();

        map.put("1","zhangsan");
        map.put("2","lisi");


         map.values().stream().forEach(e->System.out.println(e));


    }
    控制台输出
    zhangsan
    lisi

实战
两个list集合进行过滤

List<InterceptRuleVO> interceptRuleVOList = BeanCopyUtil.copyList(data, InterceptRuleVO.class);
		Long zero = 0L;
		if (!Objects.equals(zero, id)) {
			String rule = taskProfileService.queryInterceptRule(id);
			List<String> ruleList = JSONUtil.toList(rule, String.class);
			interceptRuleVOList.stream()
					.map(sur -> ruleList.stream()
							.filter(tar -> Objects.equals(sur.getId(), tar))
							.findFirst()
							.map(tar -> {
								sur.setSelectedStatus(1);
								return sur;
							}).orElse(null))
					.collect(Collectors.toList());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫果冻

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值