首页 > 编程语言 >Java之Stream流的常用API

Java之Stream流的常用API

时间:2023-07-29 19:14:16浏览次数:54  
标签:Java Stream list System API forEach println out

Java之Stream流的常用API

Stream流常见中间方法

名称 说明
Stream<T> filter(Predicate<? super T> predicate) 用于对流中的数据进行过滤
Stream<T> limit(long maxSize) 获取前几个元素
Stream<T> skip(long n) 跳过前几个元素
Stream<T> distinct() 去除流中重复的元素。依赖(hashCode和equals方法)
static <T> Stream<T> concat(Stream a,Stream b) 合并a和b两个流为一个流

注意:

  1. 中间方法也称为非终结方法,调用完成后返回新的Stream流可以继续使用,支持链式编程。

  2. 在Stream流中无法直接修改集合、数组中的元素。

Stream流的常见终结方法

名称 说明
void forEach(Consumer action) 对此流的每个元素执行遍历操作
long count() 返回此流中的元素数

代码实现

 List<String> list = new ArrayList<>();
         Collections.addAll(list , "张文君","张文俊","周文君","周三","李达","张俊","张俊");
         // Stream<T> filter(Predicate<? super T> predicate);
         list.stream().filter(s->s.startsWith("张")).forEach(s-> System.out.println(s));
 ​
         long size = list.stream().filter(s ->s.length() == 3).count();
         System.out.println(size);
 ​
         // list.stream().filter(s->s.startsWith("张")).limit(2).forEach(s-> System.out.println(s));
         list.stream().filter(s->s.startsWith("张")).limit(2).forEach(System.out::println);
         //只去姓张的前两个元素                                           前后变量一样的话可以这样简化
 ​
         list.stream().filter(s->s.startsWith("张")).skip(2).forEach(System.out::println);
 ​
         // map加工方法:第一个参数原材料  -> 第二个参数是加工后的结果
         // 给集合元素的前面都加上一个: 黑马的:
         list.stream().map(s->"黑马的:"+s).forEach(s-> System.out.println(s));
 ​
         //需求:把所有的名称 都加工成一个学生对象。
         // list.stream().map(s-> new Student()).forEach(s-> System.out.println(s));
         list.stream().map(Student::new).forEach(System.out::println);
 ​
         //合并流。
         Stream<String> s1 = list.stream().filter(s -> s.startsWith("张"));
         Stream<String> s2 = Stream.of("java","mysql");
 ​
         //public static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b)
         Stream<String> s3 = Stream.concat(s1 , s2);
         s3.forEach(s -> System.out.println(s));
         //s3.distinct().forEach(s -> System.out.println(s)); //去重复版本
 ​
         Stream<String> s4 = list.stream().filter(s -> s.startsWith("张"));
         Stream<Integer> s5 = Stream.of(21,22);
         //如果s4,s5不是一种类型,那么左边要用他们两个共同的父类object来接
         Stream<Object> s6 = Stream.concat(s4 , s5);
         s6.forEach(s -> System.out.println(s));
 

标签:Java,Stream,list,System,API,forEach,println,out
From: https://www.cnblogs.com/liandaozhanshi/p/17590292.html

相关文章

  • 《面试1v1》JavaNIO
    我是javapub,一名Markdown程序员从......
  • stream流
    1.概述:Stream流是JDK8新增的成员,允许以声明性方式处理数据集合,可以把Stream流看作是遍历数据集合的一个高级迭代器。Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找/筛选/过滤、排序、聚合和映射数据等操作。使用StreamAPI对......
  • Java学习-3.流程控制语句
    一、输入和输出println是printline的缩写,表示输出并换行。因此,如果输出后不想换行,可以用print():System.out.print("C.");System.out.println();System.out.println("END");Java还提供了格式化输出的功能。为什么要格式化输出?因为计算机表示的数据不一定适合人来阅读:public......
  • Java学习2
    java学习2继续学习了一些基础的语法内容知识数据类型扩展整数进制标识inta=010; //8八进制0开头intb=0x10; //16十六进制0x开头intc=10; //10十进制0-9A-F浮点数进制标识floatA=1.0;floatB=1.0; 如果进行比较A与B大小是不同的,因为fl......
  • Java学习-2.简介、关键字、标识符、变量、数据类型、运算符
    一、Java简介Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名......
  • Java面试题 P14:java面试简历如何写
    1、简历整体结构一份完整的简历应该包括如下几个部分:1、基本信息2、教育背景3、求职意向4、工作经历5、执业技能6、项目经历7、个人优势8、个人荣誉2、执业技能:   3、项目经历: ......
  • Apifox使用-接口调试
     正文:接口调试前后置操作响应和断言环境和变量 接口调试Apifox除了写接口文档以外,另一个重要的功能就是做接口调试相当于postman。当新建了一个接口文档并保存了以后,文档的后面会出现三个页签:修改文档、运行、高级Mock 在运行这里我们就可以进行接口的调试了,当然......
  • JavaWeb之Servlet入门版教务系统(一)
    本次要分享的内容是使用Servlet技术实现最简单的从页面到后台的一个简化版的教务系统功能模块。在讲述系统之前,首先需要了解一下JavaWeb中的MVC分层重要思想,请看下图:MVC分层思想把软件系统分为View(视图层),Controller(控制层),Model(模型层),通过这三层结构。让页面请求必须通过控制......
  • 基于JAVA的佳乐福购物商城
    本系统主要是提供给大一个购买商品的平台和管理商品的佳乐福购物商城,通过价格优势吸引众多消费者来购买,实现正常运营。本文主要是采用JAVA语言、jsp技术、Sqlserver数据库、tomcat服务器作为开发平台,系统采用B/S结构进行开发,完成一个佳乐福购物商城。目标是实现一个以销售为中心的......
  • 基于JAVA的小区智能停车位管理系统
    随着小区自动化和信息化程度的不断提升,停车位管理受到越来越多小区的重视,为了方便小区停车位管理难的问题,小区物业急需一套小区智能停车位管理系统。智能停车位管理系统可以通过对出入小区的车辆进行注册登记、收费管理等活动,进而实现小区信息化建设的提升。面对信息高速发展的机遇......