面试题:简述如何实现数组和 List 之间的转换 ?

在Java中,数组和List是两种常用的集合类型,它们之间可以很方便地进行相互转换。以下是具体的方法:

数组转换为 List

  1. 使用 Arrays.asList() 方法
  • Java 提供了 Arrays 类的 asList() 方法,可以快速将一个数组转换为 List
  • 注意:通过这种方式得到的 List 实际上是一个固定大小的列表,它是 Arrays.asList() 返回的内部类的一个实例。这意味着你不能添加或删除元素(这会抛出 UnsupportedOperationException),但你可以修改现有元素。
import java.util.Arrays;
import java.util.List;

public class ArrayToListExample {
    public static void main(String[] args) {
        String[] array = {"A", "B", "C"};
        List<String> list = Arrays.asList(array);

        System.out.println(list); // 输出: [A, B, C]
    }
}
  1. 如果你需要一个可以增删元素的 List,可以通过以下方式创建:
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;

public class ArrayToListMutableExample {
    public static void main(String[] args) {
        String[] array = {"A", "B", "C"};
        List<String> list = new ArrayList<>(Arrays.asList(array));

        System.out.println(list); // 输出: [A, B, C]
    }
}

List 转换为数组

  1. 使用 List 的 toArray() 方法
  • List 接口提供了一个 toArray() 方法来将 List 转换为数组。不过,默认情况下它返回的是 Object[] 类型的数组,因此需要传递一个指定类型的数组作为参数来获取指定类型的数组。
import java.util.Arrays;
import java.util.List;

public class ListToArrayExample {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("A", "B", "C");
        String[] array = list.toArray(new String[0]);

        System.out.println(Arrays.toString(array)); // 输出: [A, B, C]
    }
}

总结

  • 将数组转换为 List 可以使用 Arrays.asList() 方法,但需要注意这种方法生成的 List 是固定大小的。如果需要可变大小的 List,应使用 new ArrayList<>(Arrays.asList(...)) 来创建。
  • List 转换为数组则可通过 ListtoArray(T[] a) 方法完成。为了获得正确的数组类型,通常需要传入一个与目标类型相匹配的新数组对象作为参数。
  • 这些方法使得在数组和 List 之间进行转换变得简单直接,可以根据实际需求选择最适合的方式。理解这些转换的基本原理对于有效处理不同数据结构之间的交互非常重要。
THE END
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容