count

  1. package com.yang.Test.StreamStudy;
  2. import java.util.stream.Stream;
  3. /**
  4. * 统计荷属:count
  5. * 正如旧集合Collection当中的size方法一样,流提供count方法来数一数其中的元素个数
  6. * long count();
  7. * 该方法返回一个long的值表示元素的个数(不再像旧集合那用是int值)
  8. */
  9. public class CountStudy {
  10. public static void main(String[] args) {
  11. Stream<String> stream = Stream.of("张无忌", "张三丰", "周芷若");
  12. // System.out.println(stream.count());
  13. long count = stream.filter(s -> {
  14. return s.startsWith("张");
  15. }).count();
  16. System.out.println(count);
  17. }
  18. }

运行结果:

limit

取用前几个:limit

limit方法可以对流进行截取,只取用前n个。方法签名:

Stream limit(long maxSize);

参数是一个Long类型,如果集合当前长度大于参数则进行截取;否则不进行操作。基本使用:

代码:

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

运行结果:

skip

跳过前几个:skip

如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流

String skip(long n);

如果流当前的长度大于n,则跳过前n个;否则将会得到一个长度为0的空流。基本使用:

代码实现:

  1. package com.yang.Test.StreamStudy;
  2. import java.util.stream.Stream;
  3. /**
  4. * 如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流
  5. * String<T> skip(long n);
  6. * 如果流当前的长度大于n,则跳过前n个;否则将会得到一个长度为0的空流
  7. */
  8. public class SkipStudy {
  9. public static void main(String[] args) {
  10. //获取一个Stream流
  11. String[] arr = {"张三", "李四", "王五", "赵六", "田七"};
  12. Stream<String> stream = Stream.of(arr);
  13. stream.skip(3).forEach(s -> System.out.println(s));
  14. }
  15. }
  16. ![image](uploading...)

运行结果:

concat

组合:concat

如果有两个流,希望合并称为一个流,那么可以使用Stream接口的静态方法concat:

static Stream concat(Stream<? extends T> a,Stream<? extends T> b)

这是一个静态方法,与java.lang.String当中的concat方法是不同的

代码实现:

  1. package com.yang.Test.StreamStudy;
  2. import java.util.stream.Stream;
  3. public class ConcatStudy {
  4. public static void main(String[] args) {
  5. Stream<String> streamA = Stream.of("张三");
  6. Stream<String> streamB = Stream.of("李四");
  7. Stream<String> result = Stream.concat(streamA, streamB);
  8. result.forEach(s -> System.out.println(s));
  9. }
  10. }

运行结果:

Stream流中的常用方法的更多相关文章

  1. Stream流的特点_只能使用一次和Stream流中的常用方法_map

    Stream流的特点_只能使用一次 public class FilterStudy04 { public static void main(String[] args) { //创建一个Stream ...

  2. Stream流中的常用方法foeEach和Stream流中的常用方法filter

    延迟方法:返回值类型仍然是Stream接口自身类型的方法,因此支持链式调用.(除了中介方法外,其余方法均为延迟方法) 终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持类似Stri ...

  3. JDK 8 中Stream流中的去重的方法

    JDK 8 中Stream流中去重的方法 1.简单的去重,可以使用distinct()方法去重,该方法是通过比较equals和hashcode值去去重, 2.复杂的去重, 例如,在一个JavaBean ...

  4. 【JDK8】JDK 8 中Stream流中的去重的方法

    JDK 8 中Stream流中去重的方法 1.简单的去重,可以使用distinct()方法去重,该方法是通过比较equals和hashcode值去去重, 2.复杂的去重, 例如,在一个JavaBean ...

  5. Stream流思想和常用方法

    一.IO流用于读写:Stream流用于处理数组和集合数据: 1.传统集合遍历: 2.使用Stream流的方式过滤: 其中,链式编程(返回值就是对象自己)中,filter使用的是Predicate函数式 ...

  6. node.js中stream流中可读流和可写流的使用

    node.js中的流 stream 是处理流式数据的抽象接口.node.js 提供了很多流对象,像http中的request和response,和 process.stdout 都是流的实例. 流可以 ...

  7. java中的Stream流

    java中的Stream流 说到Stream便容易想到I/O Stream,而实际上,谁规定"流"就一定是"IO流"呢?在Java 8中,得益于Lambda所带 ...

  8. JAVA-基础(Stream流)

    说起stream流大家的第一反应是io,但是实际上谁规定流一定是存在io包里呢?在java8中得益于Lambda表达式的函数式编程,引入了一个全新的概念,stream. 1.优势? 在java8之前我 ...

  9. ASP.NET Core MVC中Controller的Action如何直接使用Response.Body的Stream流输出数据

    在ASP.NET Core MVC中,我们有时候需要在Controller的Action中直接输出数据到Response.Body这个Stream流中,例如如果我们要输出一个很大的文件到客户端浏览器让 ...

随机推荐

  1. 推荐三个好用的TamperMonkey洛谷插件

    Part 1: TamperMonkey 插件 Part 1.1 什么是 Tampermonkey 在我们学习的过程中,往往想要更多功能,这时候可以使用 TamperMonkey 插件进行美化 官网介 ...

  2. 图解KMP字符串匹配算法+代码实现

    kmp算法跟之前讲的bm算法思想有一定的相似性.之前提到过,bm算法中有个好后缀的概念,而在kmp中有个好前缀的概念,什么是好前缀,我们先来看下面这个例子. 观察上面这个例子,已经匹配的abcde称为 ...

  3. unity---角色控制器控制角色移动

    获取对象 public CharacterController cc; cc=gameObject.GetComponent<CharacterController>(); if(Inpu ...

  4. HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验

    AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...

  5. 树形dp基础

    今天来给大家讲一下数形dp基础 树形dp常与树上问题(lca.直径.重心)结合起来 而这里只讲最最基础的树上dp 1.选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程 ...

  6. HTML5续集

    H5 input新增属性 1.color 拾色器 2.Email 电子邮件 3.tel 电话 4.datetime-local 本地日期和时间 5.range 范围 6.url 路径,地址 7.sea ...

  7. SpringSecurity简单入门

    1.简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spr ...

  8. hash和history路由的区别

    在了解路由模式前,我们先看下 什么是单页面应用,vue-router  的实现原理是怎样的,这样更容易理解路由. SPA与前端路由 SPA(单页面应用,全程为:Single-page Web appl ...

  9. CSS3:scrollbar样式设置

    CSS3:scrollbar样式设置 1. 设置出现滚动条的方式 overflow:scroll --- x和y方向都会出现滚动条 或者 overflow-x:scroll --- 只有x方向出现滚动 ...

  10. Hive参数与性能企业级调优

    Hive作为大数据平台举足轻重的框架,以其稳定性和简单易用性也成为当前构建企业级数据仓库时使用最多的框架之一. 但是如果我们只局限于会使用Hive,而不考虑性能问题,就难搭建出一个完美的数仓,所以Hi ...