Java Array to List 数组和列表转换

数组 Array 和列表 List 都是 Java 中常用的结构,并且列表的底层也是由数组构成,因此他们之间能相互转换。

列表转数组

列表 List 转为数组 Array 可以有多种方式。

toArray

List 转为 Array 需要用到 List 的 toArray() 方法。

private static void toArray(){
    List<String> list = Arrays.asList("A", "B", "C", "D", "D");
    String[] array = list.toArray(new String[0]);
    System.out.println(Arrays.toString(array));
}

值得注意的是,toArray() 需要传入返回值的类型,这里给的是 new T[0],有一些版本认为 new T[list.size()]的性能更好。实际上,在较高的 JDK 版本中,这个差异微乎其微,并且编译器会做适当优化,设置数组大小为0,编译器会设置更加合适的数组长度。

[A, B, C, D, D]

数组转列表

数组转列表可以参考如下写法。

asList

Arrays 提供了 asList() 可以方便地转换:

public void toList() {
    String[] array = { "A", "B", "C", "D", "D" };
    List<String> list = Arrays.asList(array);
}

当然,这样得到的 List 是不可变的,不能向其中添加元素或删除元素,否则会出现不支持的操作异常。

如果我们想要一个标准的ArrayList,我们可以简单地实例化一个:

public void toList() {
    String[] array = { "A", "B", "C", "D", "D" };
    List<String> list = new ArrayList<String>(Arrays.asList(array));
}

这样得到的 list 就可以进行任何操作。

转载请注明出处:码谱记录 » Java Array to List 数组和列表转换
标签: