如何实现 Array 和 List 之间的转换?

在 Java 中,我们可以通过以下方法实现 Array 和 List 之间的转换:

数组转 List

String[] arr = {"apple", "banana", "orange"};
List list = Arrays.asList(arr);

        使用 Arrays.asList() 方法将数组转换为 List。这里需要注意的是,Arrays.asList() 返回的是一个不可变的 List,因此不能对其进行添加或删除元素等操作。

如果想要操作转换后的 List,可以将其再次包装成一个 ArrayList,如下所示: 

String[] arr = {"apple", "banana", "orange"};
List list = new ArrayList<>(Arrays.asList(arr)); // 将数组转换为可变的 ArrayList

List 转数组

List list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");

String[] arr = list.toArray(new String[0]);

          使用 List 接口提供的 toArray() 方法将 List 转换为数组,需要注意的是,调用该方法时需要传入类型完全相同的新数组来作为参数,否则会返回一个 Object 类型的数组,无法解决类型不兼容的问题

        如果仍然需要返回类型不同的数组,则可以先将 List 转为 Object[] 数组,再逐个转换为目标类型的数组元素。

List list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

Object[] objArr = list.toArray();
Integer[] intArr = new Integer[objArr.length];
for (int i = 0; i < objArr.length; i++) {
    intArr[i] = (Integer) objArr[i];
}

你可能感兴趣的:(面试题积累——java基础篇,java)