广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 中数组Array和列表List的转换
  • 106
分享到

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

java 2023-09-10 14:09:33 106人浏览 泡泡鱼
摘要

主要介绍Java中Java 中数组Array和列表List的转换。 一、数组Array转列表List 1.使用Collections.addAll()方法 使用Collections.addAl

主要介绍Java中Java 中数组Array和列表List的转换。

一、数组Array转列表List

1.使用Collections.addAll()方法

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

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方法,但该种方式只针对引用对象,不针对基本数据类型。

List<Integer> list1 = new ArrayList<>(Arrays.asList(integersArr));list1.add(11);System.out.println("list1 = " + list1);

3.使用Stream方法

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

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

代码地址:https://GitHub.com/yangnk/JavaHelloworld/blob/58a4ad579d5c5c3467cf89aa25bbd7f55141e7fe/src/main/java/lang/ArrToListTest.java

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

image-20230531234708149

二、列表转数组

1.使用Stream方法

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

List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);//List --> int[]int[] ints = list.stream().mapToInt(Integer::intValue).toArray();//List --> 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));

执行结果:

代码地址:Https://github.com/yangnk/JavaHelloworld/blob/master/src/main/java/lang/LIstToArrTest.java

参考资料

  1. Java数组转List的三种方式及对比:https://blog.csdn.net/x541211190/article/details/79597236
  2. int数组和Integer数组以及List<Integer>集合三者的相互转化:https://blog.csdn.net/ASDQWE09876/article/details/79271992

来源地址:https://blog.csdn.net/ynkimage/article/details/130979580

--结束END--

本文标题: Java 中数组Array和列表List的转换

本文链接: https://www.lsjlt.com/news/402400.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作