字符串转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<Integer> boxed = stream.boxed();
//将流转化成Integer数组
//方式一
Integer[] arr1 = (Integer[]) boxed.toArray();
//方式二
Integer[] arr2 = boxed.toArray(Integer[]::new);
int数组转Integer集合
- 这里以转换成List<Integer>为例子,Stream转成集合使用collect()方法,转化不同的集合使用Collectors指定;
- 转换过程:int[] --> IntStream --> Stream --> List<Integer>;
//定义一个int数组
int[] arr = {1,2,3,4};
//int[] -> IntStream -> Stream -> List<Integer>
List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList());
数值流与流之间的相互转化
//创建一个数组
int[] arr= {1,2,3};
//获取数值流
IntStream intStream = Arrays.stream(arr);
//数值流转流
Stream<Integer> boxed = intStream.boxed();
//创建一个集合
ArrayList<Integer> list = new ArrayList<>();
//获取流对象
Stream<Integer> stream = list.stream();
//流转成数值流
IntStream intStream = stream.mapToInt(s -> Integer.valueOf(s));
|