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);

版权声明

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

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

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

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