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

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

数组转换为List:

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

举例:

java 复制代码
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);
    }
}

输出如下所示:

java 复制代码
[小狗,小猫,大象]

List转换为数组:

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

举例:

java 复制代码
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);
        }
    }
}

输出如下所示:

java 复制代码
apple
banana
orange

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

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

相关推荐
脉动数据行情几秒前
Go语言对接股票、黄金、外汇API实时数据教程
开发语言·后端·golang
kfyty7251 分钟前
loveqq 作为网关框架时如何修改请求体 / 响应体,和 spring 又有什么区别?
后端·架构
天选之女wow6 分钟前
【Hard——Day4】25.K 个一组翻转链表
数据结构·算法·leetcode·链表
root_zhb18 分钟前
List.contains踩坑
java·list
爬山算法21 分钟前
Redis(128)Redis的跳表(Skip List)是如何实现的?
数据库·redis·list
曾经的三心草22 分钟前
Java数据结构-List-栈-队列-二叉树-堆
java·数据结构·list
aiopencode25 分钟前
Swift 加密工具推荐,构建可落地的多层安全体系(源码混淆+IPA 加固+动态对抗+映射治理)
后端
橘子真甜~29 分钟前
C/C++ Linux网络编程5 - 网络IO模型与select解决客户端并发连接问题
linux·运维·服务器·c语言·开发语言·网络·c++
Moe4881 小时前
合并Pdf、excel、图片、word为单个Pdf文件的工具类(技术点的选择与深度解析)
java·后端
又过一个秋1 小时前
CyberRT Transport传输层设计
后端