Stream流的各种API方法

5 篇文章 0 订阅
订阅专栏

Stream流的中间方法

Stream的API方法

注意:

  1. 使用中间方法会返回新的Stream流, 原来的stream流只能使用一次, 建议使用链式编程
  2. 修改stream流中的数据, 不会影响原来集合或者数组中的数据
import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.Stream;

public class Demo3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张三","李四","王五","张三丰","小蜘蛛","小李子","张无忌","小蜘蛛","小蜘蛛");
        
        // stream流过滤方法  --  filter
        list.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s));
        System.out.println("====================");
        
        // stream流获取前几个元素  -- limit
        list.stream().limit(3).forEach(s -> System.out.println(s));
        System.out.println("====================");
        
        // stream流跳过前几个元素  -- skip
        list.stream().skip(4).forEach(s -> System.out.println(s));
        System.out.println("====================");
        
        // stream流去重元素  -- forEach
        list.stream().distinct().forEach(s -> System.out.println(s));
        System.out.println("====================");
        
        // stream流合并  -- concat
        ArrayList<String> newList = new ArrayList<>();
        Collections.addAll(newList,"梅西","内马尔","苏亚雷斯");
        Stream.concat(list.stream(),newList.stream()).forEach(s -> System.out.println(s));
        System.out.println("====================");
        
        // stream流的数据类型转换  -- map
        ArrayList<String> newListAge = new ArrayList<>();
        Collections.addAll(newListAge,"梅西-36","内马尔-31","苏亚雷斯-34","杜兰特-35");
        // 获取每个球星的年龄
        newListAge.stream().map(s -> Integer.parseInt(s.split("-")[1])).forEach(s -> System.out.println(s));
    }
}

Stream流的终结方法

API方法

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class Demo4 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张三","李四","王五","张三丰","小李子","张无忌","小蜘蛛");
        // stream流遍历方法  --  forEach
        list.stream().forEach(s -> System.out.println(s));
        System.out.println("====================");
        
        // stream流统计方法  --  count
        long count = list.stream().count();
        System.out.println(count);
        System.out.println("====================");
        
        // stream流收集流中的数据存储到数组中  --  toArray
        // 方法一: 转换成Object类型的数组
        Object[] objects = list.stream().toArray();
        System.out.println(Arrays.toString(objects));
        System.out.println("====================");
        // 方法一: 转换成具体类型的数组  --  toArray[参数]
        // 参数的作用: 负责创建一个指定类型的数组, 底层原理就是把流中的每个数据存储到指定类型的数组中并返回
        // lambda表达式中的 s 代表stream流中的元素个数
        String[] array = list.stream().toArray(s -> new String[s]);
        System.out.println(Arrays.toString(array));
    }
}
import java.util.*;
import java.util.stream.Collectors;

public class Demo5 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"梅西-男-36","内马尔-31","苏亚雷斯-男-34","杜兰特-男-35","安东内拉-女-32","王爽-女-25");

        // stream流 收集流中的数据放到集合中
        // 方法1: 收集男性的数据存储到list集合中  --  collect(Collectors.toList())
        List<String> newList = list.stream().filter(s -> "男".equals(s.split("-")[1])).collect(Collectors.toList());
        System.out.println(newList);
        System.out.println("====================");

        // 方法2: 收集男性的数据存储到set集合中  --  collect(Collectors.toSet())  具有去重作用
        Set<String> setList = list.stream().filter(s -> "男".equals(s.split("-")[1])).collect(Collectors.toSet());
        System.out.println(setList);
        System.out.println("====================");

        // 方法2: 收集男性的数据存储到map集合中  --  collect(Collectors.toMap(参数一,参数二))  参数一: 键的生成规则; 参数二: 值的生成规则
        // 注意: map中的键不能重复, 名字作为键, 年龄作为值
        Map<String, String> map = list.stream().filter(s -> "男".equals(s.split("-")[1]))
                .collect(Collectors.toMap(s -> s.split("-")[0], s -> s.split("-")[2]));
        System.out.println(map);
    }
}
java8中的StreamAPI
GuessHat的博客
01-31 257
java8中的StreamAPI 1.理解 java8中stream时对数据源进行一系列的操作,最终返回一个 stream 不会储存数据 不改变源数据 操作是延迟执行的,会等到需要结果的时候才执行 2.操作步骤 创建Stream 中间对数据的操作 终止操作 3.创建 3.1 通过Collection提供的方法 3.1.1 stream()方法 串行 3.1.2 parallelStream()方法 并行 3.2 通过Arrays的stream()方法 3.3 通过Stream类中的静态
JAVA学习-(stream)相关的API及其使用
qq_48772498的博客
02-13 1016
Java 8 添加了一个新的抽象概念——stream),它可以更加高效简洁的处理集合中的数据。 关于stream)的 特点 有: 不存储元素,根据需求直接进行计算。 水线操作,可以在水线上进行相关操作,水完成就无法进行任何操作。 惰性执行,在中间进行操作时,该操作会被记录,但不会执行,只有在水完成时才会真正执行。 内部迭代,不需要自己写迭代的代码。 因为是stream)是水线操作,在中间和结束位置都可以操作,所以的操作分为 中间操作 和 终结操作。 中间操作:分为 无状
Stream常用API
Forevermark的博客
08-24 391
Java8 中有两大最为重要的改变,第一个是 Lambda 表达式,另外一个则是 Stream APIJava8 引入的全新概念,它用来处理集合中的数据。 众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而是以声明的形式操作集合,它就像 SQL 语句,我们只需告诉需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。 在项目中使用 Stream API 可以大大提高效率以及代码的可读性,使我们对数据进行处理的时候事半功倍。
Java中的Stream API详解
最新发布
m0_73467713的博客
08-17 1405
Stream API是一种处理集合的高级抽象。它能够提供一种声明性的方法来处理数据集合(例如ListSet和Map),并且支持函数式编程的风格。Stream的主要目的是让你以声明性风格处理数据集,而不是以传统的命令式风格。Stream APIJava中提供了一种强大且灵活的方式来处理数据集合。通过使用Stream API,可以编写更加简洁和可维护的代码,并利用的并行处理能力提升性能。然而,在使用Stream API时,也需要关注性能和资源的使用,确保代码的高效和稳定。
Stream API 常用
wealth_gold的博客
09-09 324
java8 stream 常用
Stream常用API
一位普普通通程序员的博客
09-08 1513
JDK8新特性------Stream的常用API
stream最常见用法api
m0_37808678的博客
11-30 579
list.add(new Employee("1010","刘强东",40,8000));list.add(new Employee("1010","刘强东",41,8000));list.add(new Employee("1010","刘强东",40,8000));list.add(new Employee("1010","刘强东",40,8000));list.add(new Employee("1010","刘强东",40,8000));e.setName(e.getName()+"马爸爸");
Stream常用方法
12-22
以下将详细介绍从标题和描述中提及的Stream的常用方法: 1. **获取Stream** - **从Collection获取**:所有实现了`Collection`接口的类(如`List`, `Set`, `Queue`等)都提供了`stream()`方法,用于将集合转换...
Java8 Stream API 详细使用方法与操作技巧指南
08-19
Java8 Stream API 详细使用方法与操作技巧指南 Java 8 引入了 Stream API,这是一个重要的特性,允许开发者以一种声明式的方式对数据进行处理。Stream 翻译过来是“”,它可以看做是一个可操作的数据集序列,具有...
Java Stream 实现合并操作示例
08-19
concat 方法Stream Api 中提供的一个静态方法,用于合并两个 Stream 。例如: ```java Stream<Integer> stream = Stream.of(1, 2, 3); Stream<Integer> another = Stream.of(4, 5, 6); Stream<Integer> ...
Java 8 Stream Api 中的 map和 flatMap 操作方法
08-25
Java 8 Stream Api 中的 map 和 flatMap 操作方法 ...map 和 flatMap 操作是 Java 8 Stream Api 中两个非常有用的操作方法,掌握这两个操作方法可以帮助开发者更方便地解决一些数据的操作问题。
streams常用API介绍
qq_55756037的博客
02-23 213
streamsAPI
Stream常见操作API介绍
PUPPET4的博客
11-29 2350
Stream常见操作API介绍 1、聚合操作 2、stream的处理程 数据源 数据转换 获取结果 3、获取Stream对象 1. 从集合后数组对象中获取 Collection.stream() Colleatcion.parallelStream() Array.stream(T t) 2. BufferReader BufferReader.lines() -> st...
Java中的StreamAPI
qq_44830792的博客
11-03 171
简介 机制用于快速的对于数据进行处理,我们可以使用它和lambda表达式达到一个简洁的数据处理; 对于数据的处理,使用可以避免再使用其他的加工步骤,更关注于结果的具体表现,而非如何去实现程;比如:如果想要对于一个0-100整形数组nums,进行大于50的计数操作; public static void main(String[] args) { int[] nums = new int[10]; for (int i = 0; i < nums.length; i
java stream API
liouwb的博客
04-27 211
stream 分为操作符 操作符 描述 map 把stream中的元素映射成新的元素输出 flatmap 把多个连接成一个 limit 限操作,比如去中的前两个数据 distint 去重操作 filter 过滤操作 peek 跳出操作 skip 跳过操作,跳过某些元素 sorted (unordered) 排序操作,对元素排序,前提是实现Comparable接口,当然也可以自定义比较器 map() 把stream中的元素映射成新的元素输出 代码演示
Java8中stream相关用法
weixin_43744920的博客
09-17 454
Java8中stream相关方法 filter filter 方法用于通过设置的条件过滤出元素,举例: public static void main(String[] args) { // 创建一个list集合 List<String> list = Arrays.asList("An", "", "ordinary", "collection");...
JAVA8新特性】 streamAPI
陆续将以前写过的技术博客统一搬运到csdn
07-03 196
这个名字本身就容易让新手混淆,因为编程领域里面有很多东西名字都带有stream,比如BIO 里面有的IO inputstream ,outputstream, 比如大数据里面有式计算,会有什么什么steam之类的。 stream怎么理解这个东西?
Java Stream API
qq_64106025的博客
05-26 399
Stream A sequence of elements supporting sequential and parallel aggregate operations Stream是一组用来处理数组、集合的APIJava 8之所以费这么大功夫引入函数式编程,原因有二: – 代码简洁函数式编程写出的代码简洁且意图明确,使用stream接口让你从 此告别for循环。 – 多核友好,Java函数式编程使得编写并行程序从未如此简单,你需要的全部 就是调用一下parallel()方法 Stream
Java Stream()API的概述
weixin_52629592的博客
12-28 328
一.Stream API的说明 StreamJava 8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找,过滤和映射等操作 使用Stream API对集合数据进行操作,就类似于使用SQl执行的数据库查询,也可以使用Stream API来并行执行操作,简言之.Stream API提供了一种高效且易于使用的处理数据的方式 二.为什么要使用Stream API? 实际的开发过程中,项目中的多数数据源都来自于MySql,Oracle等,但现在数据源可以
stream api
10-14
stream apiJava 8中引入的一种新的处理集合数据的方式,它可以让我们以一种声明式的方式来处理集合数据,而不是像传统的for循环那样去遍历集合。使用stream api可以让我们的代码更加简洁、易读、易维护。 ...
写文章

热门文章

  • elementui如何在表格中高亮显示某一行数据或者某列属性 4280
  • springboot和vue通过对象List返回某个属性的List集合 2708
  • elementui el-input和el-tree组件联合使用 2444
  • springboot使用md5进行文件上传与下载 1761
  • java 如何将一个对象转换成另一个对象 1551

分类专栏

  • linux 1篇
  • oracle
  • Hadoop
  • Spring框架 11篇
  • RabbitMQ 12篇
  • Java基础 2篇
  • 设计模式 3篇
  • 面试题
  • 数据结构和算法 2篇
  • 工具类 2篇
  • 黑马头条微服务项目
  • Stream流 5篇
  • Redis 7篇
  • Docker 7篇

最新评论

  • Linux 三剑客

    CSDN-Ada助手: CS入门 技能树或许可以帮到你:https://edu.csdn.net/skill/gml?utm_source=AI_act_gml

  • Spring AOP注解开发详解

    征途黯然.: 表情包SpringAOP注解开发详解 article is fantastic! It's truly eye-opening.

  • Spring AOP注解开发详解

    普通网友: 感谢大佬分享好文,学到了不少新知识,支持大佬,期待大佬持续输出优质文章!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 数据结构排序算法

    CSDN-Ada助手: Java 技能树或许可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java

  • Springboot项目使用Redis缓存商品信息

    虞舟: canal 下载哪个版本呢?

大家在看

  • 基于ssm+vue.js的家政服务系统附带文章源码部署视频讲解等 614
  • 基于RBF神经网络的双参数自适应光储VSG构网逆变器MATLAB仿真模型 715
  • 自然语言处理之语音识别:Hidden Markov Model (HMM)与神经网络的结合 926
  • Lambda 表达式 238
  • 自然语言处理之语音识别:Hidden Markov Model (HMM):语音识别中的语言模型 960

最新文章

  • Linux 三剑客
  • MQ 的基本概念
  • java 如何将一个对象转换成另一个对象
2024年20篇
2023年35篇
2022年14篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家大型玻璃钢花盆定制美陈玻璃钢卡通雕塑规格大型的玻璃钢仿铜雕塑太湖玻璃钢雕塑玻璃钢佛像雕塑专业厂家上海卡通玻璃钢雕塑厂家新乡商场美陈特装圆雕玻璃钢雕塑安庆玻璃钢雕塑浮雕厂家上海园林玻璃钢雕塑制作卡通玻璃钢雕塑代理商福建周年商场美陈怎么样广州玻璃钢雕塑定制厂家亳州景区玻璃钢雕塑哪家便宜成品玻璃钢雕塑哪家好商场美陈雕塑图片大全玻璃钢仿真雕塑设计嘉定玻璃钢雕塑厂虹口区玻璃钢雕塑厂家海门玻璃钢艺术品雕塑文山玻璃钢雕塑郑州多彩玻璃钢雕塑商场墙体灯饰画美陈通用玻璃钢花盆供应泡沫雕塑与玻璃钢徐州玻璃钢雕塑生产厂湖南喷泉雕塑玻璃钢湖南省玻璃钢雕塑哪里好杭州春节商场美陈卡通玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化