JDK8之stream流的使用:截断、跳过

924 阅读1分钟

「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战

前言

今天我们来说一下JDK8之stream流的使用方法,stream的使用方法有很多,本篇文章主要是围绕着截断方法和跳过方法来阐述。下面一起来看一下吧。

JDK8之stream流的使用:截断、跳过

stream流的方法太多了,昨天我们在文章中讲到了filter方法,下面就是要说截断limit方法,跳过skip方法。

limit方法

首先,这个方法是会返回一个比原有流长度小的一个流,需要传入一个参数,用来指定要截断的长度。

使用起来也与其他方法类似,就是直接在stream后进行调用即可。

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("张三");
    list.add("张四");
    list.add("张五");
    list.add("赵三");
    list.add("赵四");
    list.add("赵五");
    System.out.println(list.stream().limit(3).collect(Collectors.toList()));
}

上述代码的执行记录就会是前三个名称,因为我们在limit中传入了一个3的长度。

这个方法也可以同filter方法共同使用,先筛选完成后进行截断结果,保证返回的集合长度固定。

skip方法

skip方法,功能是传入一个数字,执行完成后返回一个流,但会跳过指定数字长度的数据。最后得到的流会比一开始的要少。

如果数字过大,比原本的流的长度还要长,那就会返回一个空的流。

还是要看一下使用示例:

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("张三");
    list.add("张四");
    list.add("张五");
    list.add("赵三");
    list.add("赵四");
    list.add("赵五");
    System.out.println(list.stream().skip(3).collect(Collectors.toList()));
}

其实skip方法与limit方法有相反的功效,limit是截断前几个,skip是跳过前几个。

两个方法相互理解就会更好理解了。

总结

今天我们学习了JDK8中stream的skip方法和limit方法,大家是否学到了些什么呢?感兴趣的可以持续关注专栏哈。