栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jdk8中Stream对于字符串、数组、集合之间的转化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jdk8中Stream对于字符串、数组、集合之间的转化

字符串转int数组

入参是以空格划分的整型数组,如"1 2 3 4";将该字符串转化成int类型的数组;

//字符串转int类型数组
String s = "1 2 3 4";
//方式一
int[] ints = Arrays.stream(s.split(" ")).mapToInt(n -> Integer.parseInt(n)).toArray();
//方式二
int[] s1 = Stream.of(s.split(" ")).mapToInt(n -> Integer.parseInt(n)).toArray();
int数组转Integer数组

转换流程:int[] --> IntStream --> Stream --> Integer[];其中,IntStream是数值流,里面所有元素都是int类型,使用Arrays.stream(T t)获取;IntStream使用boxed方法转换成Stream,也就是将数值流中的元素全部装箱,变成流;

Java8中Stream为什么要boxed_信仰_273993243的博客-CSDN博客_boxed()

int[] arr = {1,2,3};
//将int数组转化成数值流IntStream
IntStream stream = Arrays.stream(arr);
//将数值流的值全部装箱,变成流
Stream boxed = stream.boxed();
//将流转化成Integer数组
//方式一
Integer[] arr1 = (Integer[]) boxed.toArray();
//方式二
Integer[] arr2 = boxed.toArray(Integer[]::new);
int数组转Integer集合

这里以转换成List为例子,Stream转成集合使用collect()方法,转化不同的集合使用Collectors指定;转换过程:int[] --> IntStream --> Stream --> List

//定义一个int数组
int[] arr = {1,2,3,4};
//int[] -> IntStream -> Stream -> List
List collect = Arrays.stream(arr).boxed().collect(Collectors.toList());
数值流与流之间的相互转化

数值流转成流,使用数值流的boxed()方法

//创建一个数组
int[] arr= {1,2,3};
//获取数值流
IntStream intStream = Arrays.stream(arr);
//数值流转流
Stream boxed = intStream.boxed();

流转成数值流,使用mapToXXX()方法

//创建一个集合
ArrayList list = new ArrayList<>();
//获取流对象
Stream stream = list.stream();
//流转成数值流
IntStream intStream = stream.mapToInt(s -> Integer.valueOf(s));

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号