主要介绍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种转换的执行结果为:

二、列表转数组

1.使用Stream方法

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

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

执行结果:

代码地址: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

Java 中数组Array和列表List的转换相关推荐

  1. JAVA中数组Array与List互转

    List<String> list = new ArrayList<String>(); String[] array = new String[10]; Set<Str ...

  2. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...

    ArrayList和Vector的区别 ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. ...

  3. Java中数组转集合总结

    一.使用Arrays.asList() 方法 package com.joshua317;import java.util.*;public class Main {public static voi ...

  4. Java中数组以及集合

    2019独角兽企业重金招聘Python工程师标准>>> java中数组: 数组在Java里是一种特殊类型,有别于普通的"类的实例"的对象.但实际数组也是一种对象类 ...

  5. java学习总结(16.06.03)java中数组的定义和初始化

    刚开始接触java的数组时,我觉得java的数组和c++的数组虽然大致上差不多但细节上差很多,我也因此差点混乱了.后来自己仔细理了一下发现java和c++的数组只在定义和初始化上存在几点差异,而其他部 ...

  6. java中 数组声明,java数组声明格式

    java 声明动态数组,java对象数组详解,java中声明数组,java数组声明格式 Java 中数组的声明一维数组的声明: 在 Java 中,数组是独立的对象,有自身的方法,不是变量的集合. 数组 ...

  7. java中数组遍历的三种方式

    使用显示数组 for,for-each,和toString 题目描述 1.for循环遍历 程序: 运行结果: 2.foreach语句遍历 语法格式: 注: 运行结果: 程序: 运行结果: 3.Arra ...

  8. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

    方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&quo ...

  9. java中数组的数据结构_Java数据结构与算法(一)--数组

    目录 数组是应用最广泛的数据存储结构.它被植入大部分的编程语音.在Java中数组用来存放一种类型的集合. 1.数组的介绍 ①数组的声明 第一种方式: int[] arr = new int[10];/ ...

最新文章

  1. 第十六届智能车竞赛相关的提问:2021-5
  2. 在PHP当中制作隔行换色的效果以及制作上下翻页的效果!
  3. java excel md5,excel表格数据md5加密-excel 怎么把文本转化成md5
  4. 20秒搭建web服务器,跨平台(mac,window)
  5. 中国煤制甲醇产业发展形势与产量预测报告2022版
  6. 谷歌浏览器之如何快速找到js、css等文件
  7. 解锁Android性能优化的五大误区!满满干货指导
  8. 以jieba为首的主流分词工具总结
  9. php备份mysql页面_如何用PHP的页面备份、恢复Mysql数据库_php
  10. 超级抖音腾讯视频V3.6.0小程序源码 前端+后端 支持视频采集和上传
  11. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.4. 额外特性
  12. A + B Problem II
  13. Java新职篇:一维数组
  14. M1 Mac 档案的临时暂存区工具: Yoink
  15. 妙用TurboMail企业通讯平台,重要邮件不再躲猫猫
  16. java ssm基于springboot的设备巡检系统
  17. eclipse中文包和控制台中文显示乱码
  18. 百度搜索url参数详解
  19. 《SuperMap iDesktop的理论知识》
  20. 样本调试之 loadlibrary 报错1114

热门文章

  1. 小学带计算机2000的检讨书,【精选】小学学生检讨书模板集合10篇
  2. 基于自然语言理解的SPARQL本体查询(笔记版)
  3. 锐捷JCOS云平台制作云主机镜像
  4. matlab静脉识别,静脉图像识别1-预处理
  5. common prep
  6. Swift Intermediate Language
  7. 蹒跚学步之调用安卓摄像头并发送数据
  8. 2018年区块链未来的商业价值项目:中企矩阵CAM,威图币WeTube
  9. 第五届ACM/IEEE边缘计算国际研讨会 论文征集
  10. Linux简易命令手册