问答题1028/1053如何实现 Array 和 List 之间的转换?

难度:
2021-11-02 创建

参考答案:

在 Java 中,ArrayList 之间的转换是常见的操作。你可以使用 Java 的标准库提供的一些工具来实现这些转换。以下是常见的转换方法:

1. 将数组转换为 List

使用 Arrays.asList() 方法将数组转换为 List。需要注意的是,Arrays.asList() 返回的是一个固定大小的列表,因此不能在该列表上执行 add()remove() 等修改操作。

示例:

1String[] array = {"Apple", "Banana", "Cherry"}; 2List<String> list = Arrays.asList(array); 3 4System.out.println(list); // 输出:[Apple, Banana, Cherry]

2. 将 List 转换为 数组

要将一个 List 转换为数组,可以使用 ListtoArray() 方法。这个方法有两种形式:

  • toArray():返回一个包含所有列表元素的 Object[] 数组。
  • toArray(T[] a):返回一个包含所有列表元素的指定类型的数组。

示例:

1List<String> list = new ArrayList<>(); 2list.add("Apple"); 3list.add("Banana"); 4list.add("Cherry"); 5 6// 转换为 Object[] 数组 7Object[] objectArray = list.toArray(); 8System.out.println(Arrays.toString(objectArray)); // 输出:[Apple, Banana, Cherry] 9 10// 转换为指定类型的数组 11String[] stringArray = list.toArray(new String[0]); 12System.out.println(Arrays.toString(stringArray)); // 输出:[Apple, Banana, Cherry]

3. 将数组转换为 ArrayList

如果你需要将数组转换为 ArrayList,可以使用 Arrays.asList() 方法结合 new ArrayList<>(),以便获得一个可变的 ArrayList

示例:

1String[] array = {"Apple", "Banana", "Cherry"}; 2List<String> list = new ArrayList<>(Arrays.asList(array)); 3 4list.add("Date"); // 添加新元素 5System.out.println(list); // 输出:[Apple, Banana, Cherry, Date]

4. 将 List 转换为 ArrayList

如果原本的 List 可能是一个不可变的列表(例如使用 Arrays.asList() 返回的列表),你可以将其转换为 ArrayList 以便进行更灵活的操作。

示例:

1List<String> list = Arrays.asList("Apple", "Banana", "Cherry"); 2ArrayList<String> arrayList = new ArrayList<>(list); 3 4arrayList.add("Date"); // 添加新元素 5System.out.println(arrayList); // 输出:[Apple, Banana, Cherry, Date]

5. 使用 Java 8 Stream API 转换

在 Java 8 及以上版本,你可以使用 Stream API 进行更灵活的转换。例如,使用 Stream 来将 List 转换为数组,或者将数组转换为 List

示例:将 List 转换为数组:

1List<String> list = Arrays.asList("Apple", "Banana", "Cherry"); 2String[] array = list.stream().toArray(String[]::new); 3System.out.println(Arrays.toString(array)); // 输出:[Apple, Banana, Cherry]

示例:将数组转换为 List:

1String[] array = {"Apple", "Banana", "Cherry"}; 2List<String> list = Arrays.stream(array).collect(Collectors.toList()); 3System.out.println(list); // 输出:[Apple, Banana, Cherry]

最近更新时间:2024-12-09