java 8 Stream的 几种 常用方法

一.forEach 遍历

     //Stream 流 判断 进行 遍历
         List<String> list = new ArrayList<>();
         list.add("张三");
         list.add("张三丰");
         list.add("李四");
         list.add("李二蛋");
        list.stream()
                      .forEach(System.out::println);

二.filter 过滤

 //可以通过filter 方法将一个流 转换成另一个子集流
 //创建一个Stream 流
 Stream<String> steam11=Stream.of("张三丰","张昭三","李易峰","奇斯塔里");
 //过滤 姓张的 人
 Stream<String> steam12=steam11.filter(name >name.startsWith("张"));
 //输出
 steam12.forEach(System.out::println);

三. sorted ( ) -排序

   //排序 sorted -自然排序
	@Test
	public void test1() {
		List<String>  a= Arrays.asList("aaa","ddd","ccc","bbb");
		 a.stream()
		 //自然排序
		  .sorted()
		  //输出
		  .forEach(System.out::println);
	}
   //输出为
   aaa   bbb  ccc   ddd
  //sorted(comparator T) 定制排序
   List<Company> lists=Arrays.asList(
    		 new Company("张三",24,2562.20),
    		 new Company("李四",28,2577.56),
    		 new Company("王五",26,2422.57)
    		 );
  //转为stream形式
    lists.stream()
		       .sorted((e1,e2)->{
		    	  if(e1.getAge() .equals( e2.getAge())) {
		    		  return e1.getName().compareTo(e2.getName());
		    	  }else {
		    		  return e1.getAge().compareTo(e2.getAge());
		    	  }
		       })
		       .forEach(System.out::println);
		       

四.limit 截断 使其元素不超过给定数量

    lists.stream()
		       .sorted((e1,e2)->{
		    	  if(e1.getAge() .equals( e2.getAge())) {
		    		  return e1.getName().compareTo(e2.getName());
		    	  }else {
		    		  return e1.getAge().compareTo(e2.getAge());
		    	  }
		       }).limit(1)
		       .forEach(System.out::println);

五.skip(n) 跳过元素 与limit 合用 用于分页

    lists.stream()
		       .sorted((e1,e2)->{
		    	  if(e1.getAge() .equals( e2.getAge())) {
		    		  return e1.getName().compareTo(e2.getName());
		    	  }else {
		    		  return e1.getAge().compareTo(e2.getAge());
		    	  }
		       }).skip(2)
		       .limit(1)
		       .forEach(System.out::println);

六.peek 主要被用在debug用途

    Stream.of("one", "two", "three","four").filter(e -> e.length() > 3)
                .peek(e -> System.out.println("Filtered value: " + e))
                .map(String::toUpperCase)
                .peek(e -> System.out.println("Mapped value: " + e))
                .collect(Collectors.toList());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Da.ge

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

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

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

打赏作者

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

抵扣说明:

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

余额充值