Java> List与数组之间相互转换

您所在的位置:网站首页 python中list转数组 Java> List与数组之间相互转换

Java> List与数组之间相互转换

2023-07-05 21:38| 来源: 网络整理| 查看: 265

List一般包含两种存储结构:顺序存储ArrayList和链式存储LinkedList。

List与数组之间如何相互转行呢?

数组转List

1. 利用遍历数组每个元素,将元素一个个加入List 最通用的方法,适合任意基本元素类型和语言。 示例:

List list = new ArrayList(); int[] a = new int[]{3,8,20,7,11,25}; for (Integer d: a) { list.add(d); } list.foreach(System.out::println);

2. 利用数组工具类Arrays的内置方法asList 注意Arrays.asList(array)是Arrays的一个内部类Arrays.ArrayList的方法,并非我们熟知的java.util.List或java.util.ArrayList,而且返回的是一个List的视图,只能用于读取数据,不能修改或删除数据。 如果需要修改,需要在此基础上新建一个通用的List。

/* * 对象数组转化为List */ Integer[] a = new Integer[]{3,8,20,7,11,25}; List list = new ArrayList(Arrays.asList(a)); /* * 基本类型数组先用流对每个元素装箱, 转化为对应包装类型数组 * 再通过Arrays.asList转化为列表视图 * 通过新建List的构造器, 新建列表List */ int[] b = new int[]{3,8,20,7,11,25}; Integer[] boxB = Arrays.stream(b).boxed().toArray(Integer[]::new); List list = new ArrayList(Arrays.asList(boxB));

3. 利用集工具类Collections.addAll方法 直接利用Collections的add方法,将数组所有元素加入list中。要求数组必须是对象类型数组,不能是基本类型数组。如果是基本类型数组,需要先转换成对象类型数组。 这种方法本质上,跟方法1相同,都是遍历数组元素,然后加入list。

Integer[] a = new Integer[]{3,8,20,7,11,25}; List list = new ArrayList(); Collections.addAll(list, a); List转数组

1. 遍历List元素,将元素填入数组

List list = new ArrayList(); Collections.addAll(new Integer[]{1,2,3,4,5}); int[] a = new int[list.size()]; int i = 0; for (Integer d: list) { a[i] = d; i ++ } for (int i = 0; i < a.length; i ++) { System.out.println(a[i]); }

2. 利用List的toArray方法 利用List的toArray方法,将当前list转化为Object数组,再讲Object数组转化为对应类型数组,比如Object[] -> Integer[] -> int[]

// 构建列表list, 并插入数据用于测试 List list = new ArrayList(); for (int i = 0; i < 5; i++){ list.add(i); } // List转Object[] Object[] objs = list.toArray(); // Object[] 转Integer[] Integer[] nums = Arrays.stream(objs).toArray(Integer::new); // Integer[] 转int[] int[] arr = Arrays.stream(nums).mapToInt(Integer::valueOf).toArray();

3. 利用List流的mapToInt方法

// 构建列表list, 并插入数据用于测试 List list = new ArrayList(); for (int i = 0; i < 5; i++){ list.add(i); } int[] arr = list.stream().mapToInt(Integer::intValue).toArray; // 也可以用下面的语句 int[] arr = list.stream().mapToInt(Integer::valueOf).toArray;

本文来自博客园,作者:明明1109,转载请注明原文链接:https://www.cnblogs.com/fortunely/p/14121276.html



【本文地址】


今日新闻


推荐新闻


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