Java中List与数组的转换技巧

需积分: 9 0 下载量 186 浏览量 更新于2024-08-04 收藏 3KB MD 举报
"Java 中将 List 转换为数组以及数组转换为 List 的方法" 在 Java 开发中,我们经常需要在数组和 List 集合之间进行转换,特别是 ArrayList 类型。以下是对这两种数据结构转换方法的详细说明。 ### 一、List 转换为数组 #### 方法一:使用 for 循环 这是一种基本的转换方法,通过遍历 List 并将每个元素插入新创建的数组中。 ```java // 创建一个示例 List List<String> testList = new ArrayList<String>() {{ add("aa"); add("bb"); add("cc"); }}; // 初始化目标数组,长度与 List 大小相同 String[] array = new String[testList.size()]; // 使用 for 循环将 List 元素填充到数组中 for (int i = 0; i < testList.size(); i++) { array[i] = testList.get(i); } // 打印数组元素 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } ``` #### 方法二:使用 `toArray()` 方法 List 接口提供了 `toArray()` 方法,但直接转换可能引发 `ClassCastException`。正确使用方式如下: ```java // 创建一个示例 List List<String> testList = new ArrayList<String>() {{ add("aa"); add("bb"); add("cc"); }}; // 使用 toArray(T[] a) 方法,传入一个预先创建的同类型数组 // 这里需要创建一个 String 类型的空数组 String[] array = new String[0]; array = testList.toArray(array); // 打印数组元素 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } ``` 请注意,使用 `toArray()` 方法时,必须传递一个已经创建好的目标类型的数组。即使数组长度为 0,`toArray()` 也会自动调整大小并填充元素。 ### 二、数组转换为 List 将数组转换为 List 比较直接,可以使用 `Arrays.asList()` 方法: ```java // 创建一个示例数组 String[] array = {"aa", "bb", "cc"}; // 将数组转换为 List List<String> testList = new ArrayList<>(Arrays.asList(array)); // 打印 List 元素 for (String s : testList) { System.out.println(s); } ``` `Arrays.asList()` 方法会返回一个固定大小的列表,它不支持添加或删除元素。如果需要一个可变的 List,可以像上面那样,使用构造函数 `new ArrayList<>(Arrays.asList(array))` 创建一个新的 ArrayList。 在 Java 中,List 和数组之间的转换是常见的操作,理解这些转换方法有助于提高代码的灵活性和效率。记得在转换过程中注意类型安全,避免出现运行时异常。