Java 中 List 和数组的相互转换

您所在的位置:网站首页 list变为数组 Java 中 List 和数组的相互转换

Java 中 List 和数组的相互转换

2023-04-14 10:23| 来源: 网络整理| 查看: 265

int[] 转 List 和 Integer[]

int[] 转 List 和 Integer[]。

例如,我们有 int[] 数组如下:

int[] arr = {4, 5, 3, 6, 2, 5, 1}; 复制代码 int[] 转 List List list = Arrays.stream(arr).boxed().collect(Collectors.toList()); 复制代码 Arrays.stream(arr) 可以替换成IntStream.of(arr)。 使用Arrays.stream将int[]转换成IntStream。 使用IntStream中的boxed()装箱。将IntStream转换成Stream。 使用Stream的collect(),将Stream转换成List,因此正是List。 int[] 转 Integer[] Integer[] integers = Arrays.stream(arr).boxed().toArray(Integer[]::new); 复制代码 前两步同上,此时是Stream。 然后使用Stream的toArray,传入IntFunction generator。 这样就可以返回Integer数组。 不然默认是Object[]。 List 转 Integer[] 和 int[] List 转 Integer[] List list = Arrays.asList(1,2,3); Integer[] integers = list.toArray(new Integer[0]); 复制代码 调用toArray。传入参数T[] a。这种用法是目前推荐的。 List转String[]也同理。 List 转 int[] List list = Arrays.asList(1,2,3); int[] arr1 = list.stream().mapToInt(Integer::valueOf).toArray(); 复制代码 想要转换成int[]类型,就得先转成IntStream。 这里就通过mapToInt()把Stream调用Integer::valueOf来转成IntStream 而IntStream中默认toArray()转成int[]。 Integer[] 转 int[] 和 List Integer[] 转 int[] int[] arr = Arrays.stream(integers).mapToInt(Integer::valueOf).toArray(); 复制代码 思路同上。先将Integer[]转成Stream,再转成IntStream。 Integer[] 转 List List list = Arrays.asList(integers); 复制代码 最简单的方式。String[]转List也同理。 List 和 String[] 转化

和 Integer 基本类似,代码如下:

// 同理 String[] strings1 = {"a", "b", "c"}; // String[] 转 List List list3 = Arrays.asList(strings1); // List 转 String[] String[] strings2 = list3.toArray(new String[0]); 复制代码 完整代码 import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { int[] data = {4, 5, 3, 6, 2, 5, 1}; // int[] 转 List List list1 = Arrays.stream(data).boxed().collect(Collectors.toList()); // Arrays.stream(arr) 可以替换成IntStream.of(arr)。 // 1.使用Arrays.stream将int[]转换成IntStream。 // 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream。 // 3.使用Stream的collect(),将Stream转换成List,因此正是List。 // int[] 转 Integer[] Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new); // 前两步同上,此时是Stream。 // 然后使用Stream的toArray,传入IntFunction generator。 // 这样就可以返回Integer数组。 // 不然默认是Object[]。 // List 转 Integer[] Integer[] integers2 = list1.toArray(new Integer[0]); // 调用toArray。传入参数T[] a。这种用法是目前推荐的。 // List转String[]也同理。 // List 转 int[] int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray(); // 想要转换成int[]类型,就得先转成IntStream。 // 这里就通过mapToInt()把Stream调用Integer::valueOf来转成IntStream // 而IntStream中默认toArray()转成int[]。 // Integer[] 转 int[] int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray(); // 思路同上。先将Integer[]转成Stream,再转成IntStream。 // Integer[] 转 List List list2 = Arrays.asList(integers1); // 最简单的方式。String[]转List也同理。 // 同理 String[] strings1 = {"a", "b", "c"}; // String[] 转 List List list3 = Arrays.asList(strings1); // List 转 String[] String[] strings2 = list3.toArray(new String[0]); } } 复制代码


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3