Java8中的stream(一点点)

 Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。不会去存储对象

创建Steam:

        由数组创建流,通过Arrays中的静态方法 stream() 创建数据源

        static < T> Stream< T> stream(T[] array): 返回一个流。

public void stream() {
        List<StreamObject> list = new ArrayList();
        Stream<StreamObject> stream = list.stream();
        Stream<StreamObject> stream1 = list.parallelStream();
    }

        由数组创建流,通过Arrays中的静态方法 stream() 创建数据源

        static < T> Stream< T> stream(T[] array): 返回一个流。

public void stream2() {
        Integer[] integer = new Integer[20];
        Stream<Integer> stream = Arrays.stream(integer);
    }

Stream中间操作:

筛选与切片:

1.filter(Predicate p) 接收 Lambda表达式 , 从流中排除某些元素

2.distinct() 筛选,通过流所生成元素的 hashCode() 和 equals() 去 除重复元素

3.limit(long maxSize) 截断流,使其元素不超过给定数量

4.skip(long n) 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素 不足 n 个,则返回一个空流。与 limit(n) 互补

映射:

1.map(Function f) 接收一个函数作为参数,该函数会被应用到每个元 素上,并将其映射成一个新的元素

2.mapToDouble(ToDoubleFunction f) 接收一个函数作为参数,该函数会被应用到每个元 素上,产生一个新的 DoubleStream

3.mapToInt(ToIntFunction f) 接收一个函数作为参数,该函数会被应用到每个元 素上,产生一个新的 IntStream

排序:

1.sorted() 产生一个新流,其中按自然顺序排序

2.sorted(Comparator comp) 产生一个新流,其中按比较器顺序排序

应用:

​
    public static void test() {
        List<StreamObject> list = Arrays.asList(
                new StreamObject(1, "学", "习", "烂"),
                new StreamObject(2, "学", "习", "烂"),
                new StreamObject(2, "学", "习", "烂"),
                new StreamObject(3, "学", "习", "烂")
        );
        Stream<StreamObject> stream = 
        list.stream()
        .filter(StreamObject::method)
        .distinct()
        .limit(2)
        .skip(1);
        stream.forEach(System.out::println);
        System.out.println(list);
             
       
        }

​

这里控制台会输出ID等于3的那条数据,在我们输出list的时候,我们发现list的数据并没有收到改变。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值