java8 cus_java8新特性

import java.util.*;importjava.util.stream.Collectors;importjava.util.stream.IntStream;importjava.util.stream.Stream;/*** @program: FirstDemo

* @description: Stream学习

*@author: GuoTong

* @create: 2020-08-26 11:52

**/

public classStreamTest {public static voidmain(String[] args) {

List list = new ArrayList<>();

list.add(10);

list.add(72);

list.add(35);

list.add(-15);

list.add(35);//1.创造流//使用集合产生stream流:串行流

Stream stream = list.stream();//普通流,//使用集合产生stream流:并行流//Stream integerStream = list.parallelStream();//流的产生方式3//Stream stream1 = Stream.of("abc", "yyy", "hhh");//流的产生方式,迭代器//筛选和切片//。需求,筛选/过滤出大于0的数 filter//stream.filter(i -> i > 0).forEach(System.out::println);//。需求,去除重复 distinct 注意:如果是对象:那这个类必须重写equals和hashCode//stream.distinct().forEach(System.out::println);//需求,先去除重复,然后赛选出大于的数。注意流可以链式执行//stream.distinct().filter(i -> i >= 0).forEach(System.out::println);//需求。取出前三个元素//stream.limit(3L).forEach(System.out::println);//需求。跳过前两个元素,把后面的元素取出来//stream.skip(2L).forEach(System.out::println);//需求,让每一个元素乘以2,得到每一个元素乘以2的集合//stream.map(i -> i * 2).forEach(System.out::println);//排序,自然排序 升序//stream.sorted().forEach(i-> System.out.print(i+"\t"));//比较器排序:降序//stream.sorted((i1,i2)->i2-i1).forEach(i-> System.out.print(i+"\t"));//判断集合中的每一个元素,是否都大于0//System.out.println(stream.allMatch(x -> x > 0));//判断集合中至少有一个大于零的数//System.out.println(stream.anyMatch(x -> x > 0));//得到第一个元素||德奥当前流的任意元素

/*Optional first = stream.findFirst();

Integer integer1 = first.get();

System.out.println(integer1);*/

/*Optional any = stream.findAny();

Integer integer = any.get();

System.out.println(integer);*/

/*//最大值||最小值||总数

System.out.println("流中个数"+list.stream().count());

// System.out.println("流中元素最大值:"+list.stream().max((i1,i2)->i1-i2).get());

System.out.println("流中元素最大值:"+list.stream().max(Integer::compareTo).get());

//System.out.println("流中元素最小值:"+list.stream().min((i1,i2)->i1-i2).get());

System.out.println("流中元素最小值:"+list.stream().min(Integer::compareTo).get());*/

//规约 1//System.out.println(stream.reduce((i1, i2) -> i1 + i2).get());//归约 2//System.out.println(stream.reduce(10,(i1, i2) -> i1 + i2));//收集成一个集合//Set collect = stream.filter(i -> i > 0).collect(Collectors.toSet());//List collect1 = stream.filter(i -> i > 0).collect(Collectors.toList());//迭代器产生流求1-100和//Integer integer = Stream.iterate(1, i -> i+1).limit(100L).reduce((i1, i2) -> i1 + i2).get();//System.out.println(integer);//2.流的使用//3.关闭流

}//流里面放流,把多个流合成一个流

public voidgetTwoStream() {

IntStream stream1= Arrays.stream(new int[]{1, 2, 3, 4, 6});

IntStream stream2= Arrays.stream(new int[]{3, 7, 8, 5, 9});

Stream stream =Stream.of(stream1, stream2);//把几个流变成一个流:

stream.flatMapToInt(s -> s.map(i ->i)).forEach(System.out::println);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值