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

简介: Arrays.stream().boxed()的使用

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


a53fa7633514475fa766316fab7a2e3e.jpeg


0. 写在前面

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


1. Arrays.stream()的使用

算法:

1. 获取要转换的数组。

2. 使用Arrays.stream()方法将数组转换为流,并将数组作为参数传给对方。

3. 返回形成的流


代码:

  • 用Java程序来转换数组到流
importjava.util.*;
importjava.util.stream.*;
classGFG {
// 通用函数,用于转换// 从一个数组转换到流publicstatic<T>Stream<T>convertArrayToStream(Tarray[]) {
// 返回转换流returnArrays.stream(array);
    }
publicstaticvoidmain(Stringargs[]) {
// Create an ArrayStringarray[] = { "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()方法实现

publicfinalStream<Integer>boxed() {
returnmapToObj(Integer::valueOf);
}

boxed()的作用就是将基本(原始)类型的stream转成了包装(boxed)类型的Stream

例如:上述方法实现的是int类型的stream转成了Integer类型的Stream


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


  • 为了转换数组,可以使用流(在Java 8及以上版本)。
// Java SE 8int[] primitiveArray= {1, 2, 3, 4};
Integer[] boxedArray=Arrays.stream(primitiveArray).boxed().toArray(Integer[]::new);


  • 对于较低的版本,可以通过迭代原始数组并明确地将其复制到 盒式数组
// Java SE 8int[] primitiveArray= {1, 2, 3, 4};
Integer[] boxedArray=newInteger[primitiveArray.length];
for (inti=0; i<primitiveArray.length; ++i) {
boxedArray[i] =primitiveArray[i]; // Each element is autoboxed here}


  • 同样地,一个盒式数组可以被转换为其原始对应的数组。
// Java SE 8Integer[] boxedArray= {1, 2, 3, 4};
int[] primitiveArray=Arrays.stream(boxedArray).mapToInt(Integer::intValue).toArray();
// Java SE 8Integer[] boxedArray= {1, 2, 3, 4};
int[] primitiveArray=newint[boxedArray.length];
for (inti=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
目录
相关文章
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
411 1
记IDEA Git版本回退并push到远程操作
|
并行计算 算法 计算机视觉
【MATLAB 】 ICEEMDAN 信号分解+模糊熵(近似熵)算法
【MATLAB 】 ICEEMDAN 信号分解+模糊熵(近似熵)算法
988 0
|
存储 Java C++
人人都会的synchronized锁升级,你真正从源码层面理解过吗?
本文结合Jvm源码层面分析synchronized锁升级原理,可以帮助读者从本质上理解锁升级过程,从锁如何存储,存储在哪的疑问出发,一步一步彻底剖析偏向锁,轻量级锁,自旋锁,重量级锁的原理和机制。
人人都会的synchronized锁升级,你真正从源码层面理解过吗?
|
JSON 前端开发 API
程序技术好文:百度网盘真实地址解析(告别下载百度网盘)
程序技术好文:百度网盘真实地址解析(告别下载百度网盘)
1530 0
|
存储 Java
打破常规!HashSet和TreeSet教你重新认识Java集合的无序与有序
【6月更文挑战第17天】Java集合框架中的Set接口,HashSet无序而TreeSet有序。HashSet基于哈希表,元素插入顺序不可预测,适合快速去重。TreeSet利用红黑树保证有序性,支持自然排序或自定义排序。若需同时无序和有序,可先用HashSet去重,再将元素加入TreeSet,但会牺牲性能。选择时依据对顺序和性能的需求。
376 2
|
Linux
linux centos7查看linux的登录日志
linux centos7查看linux的登录日志
537 2
linux centos7查看linux的登录日志
|
开发者
【浏览器按F12打不开开发者工具(兼容模式打开处)】
【浏览器按F12打不开开发者工具(兼容模式打开处)】
1046 0
【浏览器按F12打不开开发者工具(兼容模式打开处)】
|
机器学习/深度学习 并行计算 PyTorch
使用 PyTorch、ONNX 和 TensorRT 将视觉 Transformer 预测速度提升 9 倍
使用 PyTorch、ONNX 和 TensorRT 将视觉 Transformer 预测速度提升 9 倍
980 1
|
关系型数据库 MySQL
Mysql 8.0创建用户并授权
Mysql 8.0创建用户并授权
369 0

热门文章

最新文章