一、List列表与对象数组 List列表中存储对象,如List、List、List,对象数组中同样存储相应的对象,如Integer[]、String[]、Person[],对象数组与对象List的转换可通过如下方式实现: (一)对象List
List列表中存储对象,如List
、List
、List
,对象数组中同样存储相应的对象,如Integer[]、String[]、Person[],对象数组与对象List的转换可通过如下方式实现:
直接调用对象List的toArray()方法转换为对象数组,该方法的参数是T[]
,因此需要传入对应的对象数组构造函数,指定数组的长度,如下所示:
1 2 3 |
|
通过Stream流的toArray()方法,传入参数是对应对象的构造方法的方法引用,使用方式如下所示:
1 2 3 |
|
这个toArray()方法是Stream类下的,该方法说明如下所示:
A[] toArray(IntFunction generator);
该方法传入一个函数式接口,该接口对应一个方法引用,作用是创建一个新的指定类型和长度的数组,因此我们传入的参数就是一个Integer[]数组的构造方法的方法引用,最终得到的也就是一个Integer[]数组。
过于简单,不再赘述。
该方法通过传入一个对象数组,最后转换为一个对象List,如下所示:
1 2 3 |
|
asList方法传入的参数是一个可变参数,因此既可以传入多个参数,也可以传入一个数组,如下所示:
@SafeVarargs@SuppressWarnings("varargs")public static List asList(T... a) { return new ArrayList<>(a);}
通过Collections集合类的static方法将一个对象数组转换为对象List,注意首先要创建出一个对象List,使用方式如下所示:
1 2 3 4 |
|
jdk8之后可以使用Stream流来执行转换操作,通过Stream流的终结操作collect来指定将要转换得到的List:
1 2 3 |
|
过于简单,不再赘述。
上面我们介绍了对象List列表与对象数组之间的转换,但是有些情况需要直接将对象List转换为基本数据类型数组,如List
转int[]
这种情况,下面详细介绍。
通过Stream流执行转换,如List
转换为int[]
,通过Stream流的mapToInt()可将每个Integer转换为int,再输出为int数组,如下所示:
1 2 3 4 5 6 |
|
过于简单,不再赘述。
以int[]数组来举例,通过Stream流的mapToObj()方法先将int[]数组中每个int值转换为Integer包装类,再通过collect执行终结操作转换为Integer的List。
int[] integersArray = {1, 2, 3};// 1、Stream流转换, 需要先用mapToObj进行转换List integersList = Arrays.stream(integersArray).mapToObj(Integer::new).collect(Collectors.toList());
for循环是最简单、好用的方式,不再赘述。
注意,二维数组中的 list.toArray(array) 方法不能用于一维的 int[] 中。
因为 toArray() 方法的参数是范型对象,而 int 是标准数据类型。可以用 Interger[]来实现
来源地址:https://blog.csdn.net/m0_45406092/article/details/131709806
--结束END--
本文标题: Java中List与数组之间的相互转换
本文链接: https://www.lsjlt.com/news/405742.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0