首页 > 编程语言 >stream的优化:java封装的拆箱与装箱的弊端

stream的优化:java封装的拆箱与装箱的弊端

时间:2023-12-26 21:01:10浏览次数:38  
标签:拆箱 java stream map age author filter

authors.stream()
    .map(author->author.getAge)
    .map(age->age+10)//Stream<Integer>
    .filter(age>18)//Stream<Integer>
    .foreach(System.out::println);

上述是一个简单的stream流的使用,当我们拆开第二个map,或者filter的时候会发现,传入和传出的参数都是Integer类型,这样的拆箱与装箱无疑会增大时间的损耗,

为此stream提供了一些基本数据类型的优化

authors.stream()
    .mapToInt(author->author.getAge)
    .map(age->age+10)//IntStream
    .filter(age>18)//IntStream
    .foreach(System.out::println);

还有其他的形式:mapToLong,mapToDouble,flatMapToInt等等

标签:拆箱,java,stream,map,age,author,filter
From: https://www.cnblogs.com/kun1790051360/p/17929343.html

相关文章

  • java基础语法API之GUI图形化界面1
    一:概述虽然现在在开发中,前后端交互,用户所看到的界面都是前端实现的,但是java自身的图形化界面,对于java学习初学者还是需要了解的。对于开发是有利的。二:具体说明<1>GUI介绍java中为GUI相关的API在java.awt包和java.swing包中。java.awtawt是这三个单词首字母的缩写,翻译过来是抽象窗......
  • java中的方法引用
    方法引用是对lambda的进一步简化,如果方法体只有一个方法调用的话,可以直接采用对象名(类名)::方法名的格式(想起来了C++的一些语法)一个例子:上面是lambda的一种写法,下面是方法引用的改进int[]arr={-1,2,3,4,5,6};Arrays.stream(arr).forEach(a->System.out.println(a));......
  • JAVA 设计模式(一) - 单例模式
    JAVA设计模式(一)-单例模式本篇文章主要讲下android创建型设计模式中的单例模式.单例模式保证一个类只有一个实例,并提供一个访问该实例的全局节点.它的实现有多种实现方式:1:饿汉式饿汉式:类加载时就创建实例.不支持延迟加载实例publicclassSingleton{priva......
  • JAVA设计模式(三)-原型
    JAVA设计模式(三)-原型本篇文章主要讲下java创建型设计模式中的原型模式.何谓原型模式:简单来说就是将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。使用原型模式,就可以简化实例化的过程,不必依赖于构造函数或者new关键字.由于java提供了clone方法......
  • JAVA设计模式(二)-简单工厂
    JAVA设计模式(二)-简单工厂本篇文章主要讲下java创建型设计模式中的简单工厂模式.简单工厂模式又叫静态工厂方法模式(StaticFactoryMethodPattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。1:定义接口publicinterfacePeople{v......
  • 无涯教程-Java9 - 私有接口方法
    在Java8之前,接口可以具有以下类型的变量/方法。Constantvariables(常量)Abstractmethods  (抽象方法)因此,无涯教程不能在接口中实现方法实现,或更确切地说,不能在Java8之前拥有默认实现。请参见示例。publicclassTester{publicstaticvoidmain(String[]args)......
  • 无涯教程-Java9 - Process API增强
    在Java9ProcessAPI中,负责控制和管理操作系统进程的API已得到很大改进。ProcessHandle类提供了检查进程活动性和销毁进程的方法。它具有onExit方法,CompletableFuture类可以在进程退出时异步执行操作。importjava.time.ZoneId;importjava.util.stream.Stream;importjava.......
  • openjdk源码-java是如何执行shell命令的
    一般我们在java中调用shell脚本的方式如下publicintexecuteLinuxCmd(Stringcmd){LOGGER.info("cmd:{}",cmd);Runtimerun=Runtime.getRuntime();try{Processprocess=run.exec(cmd);InputStreamin=proce......
  • 排查java代码慢-arthas工具
    1.下载地址,arthas(gitee.io)2.下载的是一个zip包 3.上传到服务器任意位置,解压 4.查看java进程ps-ef|grep进程名称显示结果的进程号是:1098156.cd到arthas根目录,执行命令java-jararthas-boot.jar109815启动成功如下:注意:如果是用systemctl启动的,注意下......
  • 深入探讨Java反射:解析机制与应用场景
    当谈及Java编程语言的强大功能时,反射(Reflection)是一个不可忽视的特性。反射允许程序在运行时检查和操作其自身的结构,这为开发者提供了一种动态获取信息和执行操作的途径。在本篇博客中,我们将深入探讨Java反射的原理、用法以及一些实际场景中的应用。什么是反射?反射是Java的一种......