如何实现数组和 List 之间的转换?
在Java中,数组(Array)和列表(List)之间的转换是非常常见的操作。以下是如何进行转换的一些方法:
数组转换为List
-
使用Arrays.asList方法: Java提供了
Arrays.asList
方法,可以直接将数组转换为列表。这个方法返回的是List
的一个固定大小的视图,意味着你不能添加或删除元素,但可以替换元素。String[] array = {"a", "b", "c"}; List<String> list = Arrays.asList(array);
使用Collections.addAll方法: 如果你需要一个可修改的列表,可以使用
Collections.addAll
方法将数组中的元素添加到一个新的列表中。String[] array = {"a", "b", "c"}; List<String> list = new ArrayList<>(); Collections.addAll(list, array);
使用Stream API: Java 8引入了Stream API,你可以使用它来将数组转换为列表。
String[] array = {"a", "b", "c"}; List<String> list = Arrays.stream(array).collect(Collectors.toList());
List转换为数组
-
使用List的toArray方法:
List
接口的toArray
方法可以直接将列表转换为数组。如果没有指定数组类型,它会返回一个Object[]
类型的数组。List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c")); String[] array = list.toArray(new String[0]); // 指定数组类型
使用Stream API: 如果你使用Java 8或更高版本,可以利用Stream API来转换列表到数组。
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c")); String[] array = list.stream().toArray(String[]::new);
注意,当从列表转换为数组时,你需要指定数组的类型,因为
List
的toArray
方法有一个返回类型为Object[]
的版本,这可能会导致类型安全问题。这些方法可以帮助你在数组和列表之间进行转换,选择哪种方法取决于你的具体需求,比如是否需要修改转换后的列表或数组,以及你使用的Java版本。