在Java中,数组(Array)和列表(List)是两种不同的数据结构,但它们之间可以很容易地进行转换。以下是如何在数组和List之间进行转换的示例:
数组转换为List
在Java中,没有直接的方法可以将数组转换为List,但可以使用Arrays类的asList()方法或Java 8及以上版本的Stream API来实现。
使用Arrays.asList()方法:
java
import java.util.Arrays;
import java.util.List;
public class ArrayToListExample {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5};
List list = Arrays.asList(array);
// 注意:Arrays.asList()返回的List是固定大小的,不支持add或remove操作
// 如果需要修改List,可以将其转换为ArrayList
List<Integer> modifiableList = new ArrayList<>(Arrays.asList(array));
// 遍历List
for (Integer num : modifiableList) {
System.out.println(num);
}
}
}
使用Stream API:
java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class ArrayToListStreamExample {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5};
List list = Arrays.stream(array).collect(Collectors.toList());
// 遍历List
for (Integer num : list) {
System.out.println(num);
}
}
}
List转换为数组
可以使用List接口的toArray()方法将List转换为数组。
使用toArray()方法:
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListToArrayExample {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
// 转换为原始类型数组(如Integer[])
Integer[] array1 = list.toArray(new Integer[0]); // 使用泛型类型推断
// 或者
Integer[] array2 = list.toArray(new Integer[list.size()]); // 预先指定数组大小
// 转换为其他类型的数组(如Object[]),然后强制转换(通常不推荐这样做)
Object[] array3 = list.toArray(); // 默认返回一个Object[]
// 遍历数组
for (Integer num : array1) {
System.out.println(num);
}
}
}
请注意,在使用Arrays.asList()时,返回的List是固定大小的,不支持add或remove操作。如果你需要修改返回的List,最好将其转换为ArrayList或其他可修改的List实现。
另外,当使用toArray()方法时,如果你预先知道List的大小,并希望避免不必要的数组复制,可以传递一个已初始化为正确大小的数组。否则,你可以传递一个空数组(如new Integer[0]),Java会自动为你创建一个正确大小的数组。但是,为了保持代码清晰和易于理解,最好始终传递一个正确大小的数组(如果可能的话)。