每日一道面试题之如何实现数组和 List 之间的转换?

简介: 每日一道面试题之如何实现数组和 List 之间的转换?

要实现数组和List之间的转换,可以使用Java中的Arrays类Collections类提供的方法。

数组转换为List:

使用Arrays类asList()方法可以将数组转换为List。这个方法接受一个数组作为参数,并返回一个包含数组元素固定大小的List。


举例:

import java.util.Arrays;
import java.util.List;
public class Test {
    public static void main(String[] args) {
        String[] array = {"小狗" , "小猫" , "大象" };
        List<String> list = Arrays.asList(array);
        System.out.println(list);
    }
}

输出如下所示:

[小狗,小猫,大象]

List转换为数组:

使用List的**toArray()**方法可以将List转换为数组。这个方法返回一个包含List元素的数组。

举例:

import java.util.ArrayList;
import java.util.List;
public class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        //创建与list长度相等的数组
        String[] array = new String[list.size()];
        //使用toArray方法将List转换为数组
        array = list.toArray(array);
        // 打印数组元素
        for (String element : array) {
            System.out.println(element);
        }
    }
}

输出如下所示:

apple
banana
orange

注意:数组和List之间的转换是浅拷贝的,它们共享相同的元素。对于数组转换为List,对List的修改会反映到原始数组中,对于List转换为数组,对数组的修改会反映到原始List中。


如果要将List转换为数组时想指定数组的类型,可以传递一个具有相同类型的空数组作为参数。如果传递的数组长度小于List的大小,将会创建一个新的数组来存储List的元素。

相关文章
|
6天前
|
算法
【数组相关面试题】LeetCode试题
【数组相关面试题】LeetCode试题
|
6天前
|
存储
力扣面试经典题之数组/字符串
力扣面试经典题之数组/字符串
27 0
|
6天前
|
算法 前端开发
经典面试题:扁平化嵌套数组
经典面试题:扁平化嵌套数组
23 0
|
6天前
如何实现数组和 List 之间的转换?
如何实现数组和 List 之间的转换?
|
6天前
|
存储 索引 Python
多数pythoneer只知有列表list却不知道python也有array数组
多数pythoneer只知有列表list却不知道python也有array数组
27 0
|
6天前
|
Java
Java中拷贝list数组如何实现
Java中拷贝list数组如何实现
13 0
|
6天前
|
算法 C++ 索引
【力扣经典面试题】238. 除自身以外数组的乘积
【力扣经典面试题】238. 除自身以外数组的乘积
|
6天前
|
机器学习/深度学习 算法
【力扣经典面试题】189. 轮转数组
【力扣经典面试题】189. 轮转数组
|
6天前
使用List中的remove方法遇到数组越界
使用List中的remove方法遇到数组越界
26 2
|
6天前
|
算法 测试技术 索引
力扣面试经典题之数组/字符串(二)
力扣面试经典题之数组/字符串(二)
15 0