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); }
}

运行结果:

limit

取用前几个:limit

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

Stream limit(long maxSize);

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

代码:

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));
}
}

运行结果:

skip

跳过前几个:skip

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

String skip(long n);

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

代码实现:

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...)

运行结果:

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)); }
}

运行结果:

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. Nacos源码系列—服务端那些事儿

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 前言 在上节课中,我们讲解了客户端注册服 ...

  2. Python学习4(字典的内存分布)

    1.字典:是python数据类型之一,字典通过花括号来包含数据项,字典的每个元素由2个部分组成,键:值,字典是根据键来找对应的值. data = {"name": "Et ...

  3. os模块,sys模块,json模块,subprocess模块

    os模块 一·什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同 的平台进行相应的操作,在python编程时,经常和文件.目录打交道 ...

  4. hooks 与 animejs

    hooks 与 animejs 本文写于 2020 年 1 月 13 日 animejs 是现如今非常不错的一个 js 动画库.我们将其与 React Hooks 融合,使它更方便的在 React 中 ...

  5. Linux Troubleshooting 超实用系列 - Disk Analysis

    笔者历史文章: https://github.com/CarlJi/words 关于磁盘的使用,实际生产中以下问题会较为常见: No space left on device - 空间不足 Disk ...

  6. zabbix-agent python脚本侦听服务器异常登录,并告警

    py脚本 import re,subprocess,time,datetime #gpasswd -a zabbix adm def ftime(a): a = a.replace('Jan','01 ...

  7. 【多线程】守护线程 Daemon

    守护线程 Daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. 代码示例: /** * @Desc ...

  8. Spring-Batch处理MySQL数据后存到CSV文件

    1 介绍 用Spring Batch实现了个简单的需求,从MySQL中读取用户表数据,根据生日计算年龄,将结果输出到csv文件. 1.1 准备表及数据 user test; DROP TABLE IF ...

  9. unity---Lighting面板

    打开Lighting面板 将天空盒改为别墅 图片转化为Cube 设置一个材质球

  10. Matplotlib的小入门

    Matplotlib专门用于开发2D图表(包括3D图表),在日常数据处理中经常需要运用到它,它的用法非常多样,这里记录一些基础用法,算是一个小入门,后面如果有更复杂的画图要求,再进一步学习. 如果有需 ...