开发中经常遇到数组和列表(List)互相转换的场景。除了循环依次转换,还有更高效的方法。ava 中,基本数据类型的数组 -> List,与包装类型的数组 -> List 的方式不同,借助 JDK 8 提供的 Stream,这里对转换方法作个记录。
目录
- 1 - int 型数组转换为 List
- 2 - List 转换为 int 型数组
- 3 - String 型数组转换为 List
- 4 - List 转换为 String 型数组
- 版权声明
开发中经常遇到数组和列表(List)互相转换的场景。除了循环依次转换,还有更高效的方法。
Java 中,基本数据类型的数组 -> List,与包装类型的数组 -> List 的方式不同,借助 JDK 8 提供的 Stream,这里对转换方法作个记录。
1 - int 型数组转换为 List
int[] array = {1, 2, 3, 4, 5}; // Stream 表达式,先装箱,再收集 Listlist = Array.stream(array).boxed().collect(Collectors.toList());
2 - List 转换为 int 型数组
Listlist = Arrays.asList(1, 2, 3, 4, 5); int[] array = list.stream().mapToInt(x -> x).toArray();
注意:Arrays.asList() 返回的是 Arrays#ArrayList,不支持添加、删除操作,若要进行添加和删除,可这样操作:
List
3 - String 型数组转换为 List
String[] array = {"Hello", "World", "!"}; Listlist = new ArrayList<>(Arrays.asList(array));
4 - List 转换为 String 型数组
Listlist = new ArrayList(Arrays.asList("I", "love", "Java")); String[] array = new String[list.size]; list.toArray(array);
精彩评论