数组转换为List
在Java 8及更高版本中,可以使用Arrays.stream()方法和Collectors.toList()来将数组转换为List。这里以Integer数组为例:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class ArrayToListExample {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.stream(array)
.collect(Collectors.toList());
System.out.println(list); // 输出: [1, 2, 3, 4, 5]
}
}
对于非流操作(比如Java 7或更低版本),你可以使用Arrays.asList()方法,但需要注意的是,这个方法返回的是一个固定大小的List,不支持添加或删除元素。如果你需要一个可以修改的List,可以将其转换为ArrayList:
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class ArrayToListExample {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5};
// Arrays.asList() 返回的List是固定大小的
List<Integer> fixedSizeList = Arrays.asList(array);
// 转换为ArrayList以支持修改
List<Integer> modifiableList = new ArrayList<>(fixedSizeList);
System.out.println(modifiableList); // 输出: [1, 2, 3, 4, 5]
}
}
List转换为数组
将List转换为数组可以使用List.toArray()方法,但如果你需要转换为特定类型的数组(如Integer[]),可以使用toArray(T[] a)方法,并传入一个正确类型和长度的空数组:
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class ListToArrayExample {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
// 转换为数组
Integer[] array = list.toArray(new Integer[0]); // 也可以传入list.size()长度的数组,但0长度足以
System.out.println(Arrays.toString(array)); // 输出: [1, 2, 3, 4, 5]
}
}
注意:在list.toArray(new Integer[0])中,我们传入了一个长度为0的Integer数组。虽然这样做在功能上没有问题,但传入一个与List大小相同的数组可以避免不必要的数组复制操作,从而提高性能。然而,在大多数情况下,由于性能差异很小,并且代码简洁性更重要,因此通常使用长度为0的数组。