Stream流中的常用方法

count

package com.yang.Test.StreamStudy;

import java.util.stream.Stream;

/**
 * 统计荷属:count
 * 正如旧集合Collection当中的size方法一样,流提供count方法来数一数其中的元素个数
 * long count();
 * 该方法返回一个long的值表示元素的个数(不再像旧集合那用是int值)
 */
public class CountStudy {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("张无忌", "张三丰", "周芷若");
//        System.out.println(stream.count());

        long count = stream.filter(s -> {
            return s.startsWith("张");
        }).count();
        System.out.println(count);
        
    }
}

运行结果:
image

limit

取用前几个:limit

limit方法可以对流进行截取,只取用前n个。方法签名:
Stream limit(long maxSize);
参数是一个Long类型,如果集合当前长度大于参数则进行截取;否则不进行操作。基本使用:
image

代码:

package com.yang.Test.StreamStudy;

import java.util.stream.Stream;

/**
 * limit方法可以对流进行截取,只取用前n个。方法签名:
 * Stream<T> limit(long maxSize);
 * 参数是一个Long类型,如果集合当前长度大于参数则进行截取;否则不进行操作。基本使用:
 */
public class LimitStudy {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("张三", "李四", "王五", "赵六", "田七");
        stream.limit(4).forEach(s -> System.out.println(s));
    }
}

运行结果:
image

skip

跳过前几个:skip

如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流
String skip(long n);
如果流当前的长度大于n,则跳过前n个;否则将会得到一个长度为0的空流。基本使用:
image

代码实现:

package com.yang.Test.StreamStudy;

import java.util.stream.Stream;

/**
 * 如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流
 * String<T> skip(long n);
 * 如果流当前的长度大于n,则跳过前n个;否则将会得到一个长度为0的空流
 */
public class SkipStudy {
    public static void main(String[] args) {
        //获取一个Stream流
        String[] arr = {"张三", "李四", "王五", "赵六", "田七"};
        Stream<String> stream = Stream.of(arr);

        stream.skip(3).forEach(s -> System.out.println(s));
    }
}
![image](uploading...)

运行结果:
image

concat

组合:concat
如果有两个流,希望合并称为一个流,那么可以使用Stream接口的静态方法concat:
static Stream concat(Stream<? extends T> a,Stream<? extends T> b)
这是一个静态方法,与java.lang.String当中的concat方法是不同的

代码实现:

package com.yang.Test.StreamStudy;

import java.util.stream.Stream;


public class ConcatStudy {
    public static void main(String[] args) {
        Stream<String> streamA = Stream.of("张三");
        Stream<String> streamB = Stream.of("李四");

        Stream<String> result = Stream.concat(streamA, streamB);
        result.forEach(s -> System.out.println(s));

    }
}

运行结果:
image

posted @ 2022-07-21 14:33  我滴妈老弟  阅读(695)  评论(2)    收藏  举报