shoufeng

瘦风的南墙

Java 中数组转换为 List

开发中经常遇到数组和列表(List)互相转换的场景。除了循环依次转换,还有更高效的方法。

Java 中,基本数据类型的数组 -> List,与包装类型的数组 -> List 的方式不同,借助 JDK 8 提供的 Stream,这里对转换方法作个记录。

1 - int 型数组转换为 List

int[] array = {1, 2, 3, 4, 5};
// Stream 表达式,先装箱,再收集
List<Integer> list = Array.stream(array).boxed().collect(Collectors.toList());

2 - List 转换为 int 型数组

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int[] array = list.stream().mapToInt(x -> x).toArray();

注意:Arrays.asList() 返回的是 Arrays#ArrayList,不支持添加、删除操作,若要进行添加和删除,可这样操作:
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));

3 - String 型数组转换为 List

String[] array = {"Hello", "World", "!"};
List<String> list = new ArrayList<>(Arrays.asList(array));

4 - List 转换为 String 型数组

List<String> list = new ArrayList<String>(Arrays.asList("I", "love", "Java"));
String[] array = new String[list.size]; 
list.toArray(array);

版权声明

作者: 瘦风(https://healchow.com)

出处: 博客园 瘦风的博客(https://www.cnblogs.com/shoufeng)

感谢阅读, 右侧导航栏有「瘦风的南墙」公众号二维码,输出更及时、更体系,欢迎扫码关注🤝

本文版权归博主所有, 欢迎转载, 但 [必须在页面明显位置标明原文链接], 否则博主保留追究相关人士法律责任的权利.

posted @ 2020-11-14 20:58  瘦风  阅读(2103)  评论(0编辑  收藏  举报