前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java 中数组Array和列表List的转换

Java 中数组Array和列表List的转换

作者头像
闻说社
发布2025-03-24 17:03:38
发布2025-03-24 17:03:38
11500
代码可运行
举报
运行总次数:0
代码可运行

一、数组Array转列表List

1.使用Collections.addAll()方法

使用Collections.addAll()方法,返回的List可以执行新增add方法,但该种方式只针对引用对象,不针对基本数据类型,该种方法效率较高,推荐用法。

代码语言:javascript
代码运行次数:0
运行
复制
java 体验AI代码助手 代码解读复制代码int[] arr = new int[]{1, 2, 3};
Integer[] integersArr = new Integer[]{1, 2, 3};
String[] stringsArr = new String[]{"aa", "bb", "cc"};

//方法1:使用Collections.addAll()方法,可以执行新增add方法,只针对引用对象,效率较高,【推荐用法】
List<Integer> list = new ArrayList<>(integersArr.length);
Collections.addAll(list, integersArr);
list.add(22);
System.out.println("list = " + list);

List<String> list01 = new ArrayList<>(stringsArr.length);
Collections.addAll(list01, stringsArr);
list01.add("dd");
System.out.println("list01 = " + list01);

2.使用new ArrayList<>()构造器方法

new ArrayList<>()构造器可以传入Arrays.asList(integersArr)生成的List,这种方式也可以执行新增add方法,但该种方式只针对引用对象,不针对基本数据类型。

代码语言:javascript
代码运行次数:0
运行
复制
java 体验AI代码助手 代码解读复制代码List<Integer> list1 = new ArrayList<>(Arrays.asList(integersArr));
list1.add(11);
System.out.println("list1 = " + list1);

3.使用Stream方法

在JDK8的Stream流式计算中,可以对int[],long[],double[]这类基本数据类型数组转换为对于包装类型的数组,当然直接对包装类型的数组也可以转换成列表形式。所以这种方法的优势是可以转换基本数据类型。

代码语言:javascript
代码运行次数:0
运行
复制
java 体验AI代码助手 代码解读复制代码List<Integer> list2 = Arrays.stream(arr).boxed().collect(Collectors.toList());
System.out.println("list2 = " + list2);

List<Integer> list21 = Arrays.stream(integersArr).collect(Collectors.toList());
System.out.println("list21 = " + list21);

代码地址:github.com/yangnk/Java…

以上3种转换的执行结果为:

image-20230531234708149
image-20230531234708149

二、列表转数组

1.使用Stream方法

将List转为Array主要使用的Stream方法,需要重点注意的是List转换为int[]和Integer[]有较大区别。

代码语言:javascript
代码运行次数:0
运行
复制
java 体验AI代码助手 代码解读复制代码List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

//List<Integer> --> int[]
int[] ints = list.stream().mapToInt(Integer::intValue).toArray();
//List<Integer> --> Integer[]
Integer[] integersArr = list.toArray(new Integer[list.size()]);

//int[]--> Integer[]
Integer[] integersArr1 = Arrays.stream(ints).boxed().toArray(Integer[]::new);
//Integer[] --> int[]
 int[] ints1 = Arrays.stream(integersArr).mapToInt(Integer::intValue).toArray();

System.out.println("ints = " + Arrays.toString(ints));
System.out.println("integersArr = " + Arrays.toString(integersArr));
System.out.println("integersArr1 = " + Arrays.toString(integersArr1));
System.out.println("ints1 = " + Arrays.toString(ints1));

执行结果:

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数组Array转列表List
    • 1.使用Collections.addAll()方法
    • 2.使用new ArrayList<>()构造器方法
    • 3.使用Stream方法
  • 二、列表转数组
    • 1.使用Stream方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档