Arrays.stream().boxed()的使用

2023-05-16

Arrays.stream().boxed()的使用

文章目录

  • Arrays.stream().boxed()的使用
    • 0. 写在前面
    • 1. Arrays.stream()的使用
      • 算法:
      • 代码:
      • 输出结果:
    • 2. boxed()的使用
      • boxed()方法实现
      • 在原始类型「primitives」和盒式类型「boxed」之间转换数组
    • 3. 参考


在这里插入图片描述


0. 写在前面

文章翻译自以下本文的最后链接

1. Arrays.stream()的使用

算法:

  1. 获取要转换的数组。
  2. 使用Arrays.stream()方法将数组转换为流,并将数组作为参数传给对方。
  3. 返回形成的流

代码:

  • 用Java程序来转换数组到流
import java.util.*;
import java.util.stream.*;

class GFG {

	// 通用函数,用于转换
    // 从一个数组转换到流
	public static <T> Stream<T> convertArrayToStream(T array[]) {

		// 返回转换流
		return Arrays.stream(array);
	}

	public static void main(String args[]) {
		// Create an Array
		String array[] = { "Geeks", "forGeeks", "A Computer Portal" };

		// 打印数组
		System.out.println("Array: " + Arrays.toString(array));

		// 数组转换为流
		Stream<String> stream = convertArrayToStream(array);

		// 打印流
		System.out.println("Stream: " + Arrays.toString(stream.toArray()));
	}
}

输出结果:

Array: [Geeks, forGeeks, A computer Portal]
Stream: [Geeks, forGeeks, A computer Portal]

2. boxed()的使用

有时需要将原始类型转换为盒式类型。

boxed()方法实现

public final Stream<Integer> boxed() {
    return mapToObj(Integer::valueOf);
}

boxed()的作用就是将基本(原始)类型的stream转成了包装(boxed)类型的Stream
例如:上述方法实现的是int类型的stream转成了Integer类型的Stream

在原始类型「primitives」和盒式类型「boxed」之间转换数组

  • 为了转换数组,可以使用流(在Java 8及以上版本)。
// Java SE 8
int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = Arrays.stream(primitiveArray).boxed().toArray(Integer[]::new);
  • 对于较低的版本,可以通过迭代原始数组并明确地将其复制到盒式数组。
// Java SE 8
int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = new Integer[primitiveArray.length];
for (int i = 0; i < primitiveArray.length; ++i) {
    boxedArray[i] = primitiveArray[i]; // Each element is autoboxed here
}
  • 同样地,一个盒式数组可以被转换为其原始对应的数组。
// Java SE 8
Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = 
    Arrays.stream(boxedArray).mapToInt(Integer::intValue).toArray();
// Java SE 8
Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = new int[boxedArray.length];
for (int i = 0; i < boxedArray.length; ++i) {
    primitiveArray[i] = boxedArray[i]; // Each element is outboxed here
}

3. 参考

https://www.geeksforgeeks.org/program-to-convert-boxed-array-to-stream-in-java/
https://riptutorial.com/java/example/17621/converting-arrays-between-primitives-and-boxed-types

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arrays.stream().boxed()的使用 的相关文章

随机推荐

  • Linux重新执行某个历史命令

    Linux重新执行某个历史命令 文章目录 Linux重新执行某个历史命令0 前置芝士1 Linux重新执行某个历史命令 0 前置芝士 Linux执行过的命令存储在家目录下的 bash history文件中 1 Linux重新执行某个历史命令
  • Ubuntu安装Anaconda及注意事项

    虚拟机Ubuntu安装Anaconda及注意事项 文章目录 虚拟机Ubuntu安装Anaconda及注意事项0 写在前面1 安装步骤0 下载 Anaconda1 安装 Anaconda2 确认安装的路径3 确认conda命令是否可以正常使用
  • MapReduce关于类型转换报错记录

    MapReduce关于类型转换报错记录 文章目录 MapReduce关于类型转换报错记录0 写在前面1 程序代码2 参考 0 写在前面 实验环境 xff1a Ubuntu Kylin16 04Hadoop版本 xff1a 2 7 2IDE
  • android 信息(mms)的故事(二) -- 存储

    关于android存储的有三种方式 xff1a SharePrference 文件系统和 数据库 xff0c 这些信息里都用到了 xff0c 数据库provider存储短信和彩信的基本信息 xff0c SharePrference存储关于信
  • 使用Python3操作HBase的两种方法

    使用Python3操作HBase 文章目录 使用Python3操作HBase0 写在前面1 安装conda2 安装hbase thrift 0 20 0 patch新建一个Python3 9的anaconda环境激活新建的anaconda环
  • 执行MapReduce报错:无法分配内存 (errno=12)

    执行MapReduce报错 xff1a 无法分配内存 errno 61 12 文章目录 执行MapReduce报错 xff1a 无法分配内存 errno 61 12 0 写在前面1 程序介绍2 报错解决3 参考 0 写在前面 Linux U
  • 离线数仓之Kerberos基本使用及问题记录

    离线数仓之Kerberos基本使用及问题记录 文章目录 离线数仓之Kerberos基本使用及问题记录0 写在前面1 Kerberos基本使用0 启动Kerberos相关服务1 安全模式下启动Hadoop集群 2 安装Kerberos客户端访
  • jps查看进程出现「xxxx -- process information unavailable」

    jps查看进程出现 xxxx process information unavailable 文章目录 jps查看进程出现 xxxx process information unavailable 0 写在前面1 报错2 参考 0 写在前面
  • CentOS7.X时间调整为系统时间之后,重新开机就无效了

    CentOS7 X时间调整为系统时间之后 xff0c 重新开机就无效了 文章目录 CentOS7 X时间调整为系统时间之后 xff0c 重新开机就无效了0 原因分析1 时间修改2 参考 0 原因分析 系统时区非上海 没有同步网络时间 1 时
  • MongoDB的「Linux」安装及基本使用

    MongoDB的 Linux 安装及基本使用 文章目录 MongoDB的 Linux 安装及基本使用0 写在前面1 下载并安装MongoDB2 启动方式2 1 直接启动2 2 以 配置文件 方式启动2 2 1 使用默认配置文件2 2 2 自
  • MapReduce报错:「MKDirs failed to create file」

    MapReduce报错 xff1a MKDirs failed to create file 文章目录 MapReduce报错 xff1a MKDirs failed to create file 0 写在前面1 程序代码及报错信息输入 输
  • Hive执行脚本: Return Code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

    Hive执行脚本 Return Code 2 from org apache hadoop hive ql exec MapRedTask 文章目录 Hive执行脚本 Return Code 2 from org apache hadoop
  • Hive on Tez 的安装配置

    Hive on Tez 的安装配置 文章目录 Hive on Tez 的安装配置0 写在前面1 起源2 Tez概述3 安装部署4 解决日志Jar包冲突 0 写在前面 Hadoop xff1a Hadoop 2 9 2Hive xff1a H
  • 执行Hive查询时出现OOM

    执行Hive查询时出现OOM 文章目录 执行Hive查询时出现OOM写在前面报错 xff1a Error Java heap space实验场景日志信息StckOverFlow的回答 写在前面 Hive执行引擎 xff1a Hive on
  • android 信息(mms)的故事(五)-- 发彩信

    发彩信和发短信一样 xff0c 在ComposeMessageActivity java界面都是从onclick xff08 xff09 sendMessage xff08 xff09 开始 xff0c 同样的发送前检查收件人是否有效 xf
  • flume----HDFS sink 启动时产生大量小文件处理办法

    flume HDFS sink 启动时产生大量小文件处理办法 转载自 xff1a https blog csdn net qq 37714755 article details 113243139 1 问题背景 通过flume直接上传实时数
  • Python3操作MongoDB数据库

    Python3操作MongoDB数据库 文章目录 Python3操作MongoDB数据库0 写在前面1 安装开源驱动库pymongo2 参考 0 写在前面 Linux xff1a Ubuntu Kylin 16 04MongoDB xff1
  • Linux好用的管道命令

    Linux好用的管道命令 文章目录 Linux好用的管道命令1 选取命令grepcut 分割 2 排序命令sortwcuniq 3 划分命令 split4 参数代换xargs5 数据处理工具awk 6 sed工具7 参考 1 选取命令 gr
  • 关于Hadoop集群物理及虚拟内存的检测的设置说明

    关于Hadoop集群物理及虚拟内存的检测的设置说明 文章目录 关于Hadoop集群物理及虚拟内存的检测的设置说明写在前面正文不能关闭对物理内存的检测关闭对虚拟内存的检测 参考 写在前面 Linux xff1a CentOS7 5Java x
  • Arrays.stream().boxed()的使用

    Arrays stream boxed 的使用 文章目录 Arrays stream boxed 的使用0 写在前面1 Arrays stream 的使用算法 xff1a 代码 xff1a 输出结果 xff1a 2 boxed 的使用box