首页 > 编程语言 >Java 数组与ArrayList的互转

Java 数组与ArrayList的互转

时间:2022-11-17 10:13:07浏览次数:32  
标签:Java int ArrayList List Arrays 数组 互转 Integer array


数组 转 List

数组转其他,都要借助​​Arrays​​工具类:

  • 如果是引用类型数组,则可以直接用​​Arrays.asList​​;
  • 如果是基本类型数组,则要转为​​Arrays.stream​​:

引用类型数组 Integer[] 转 List

Integer[] array = new Integer[]{1,2,3};
List<Integer> list = Arrays.asList(array );

基本类型数组 int[] 转 List

  1. 使用​​Arrays.stream​​​将​​int[]​​​转换成​​IntStream​
  2. 使用​​IntStream​​​中的​​boxed()​​​装箱。将​​IntStream​​​转换成​​Stream<Integer>​
  3. 使用​​Stream​​​的​​collect()​​​,将​​Stream<T>​​​转换成​​List<T>​​​,因此正是​​List<Integer>​
int[] array = new int[]{1,2,3};
// Arrays.stream(arr) 可以替换成IntStream.of(arr)
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());

基本类型数组 int[] 转 引用类型数组 Integer[]

int[] array = new int[]{1,2,3};
// 使用Stream的toArray,传入IntFunction<A[]> generator
// 不然默认是Object[]
Integer[] integer = Arrays.stream(array).boxed().toArray(Integer[]::new);

引用类型数组 Integer[] 转 基本类型数组 int[]

Integer[] integer = new Integer[]{1,2,3};
int[] array = Arrays.stream(integer).mapToInt(Integer::intValue).toArray();

List 转 数组

List 转 引用类型数组Integer[]

List<Integer> list = new ArrayList<>();
Integer[] integers = list.toArray(new Integer[0]);

List 转 基本类型数组 int[]

List<Integer> list = new ArrayList<>();
int[] array = list.stream().mapToInt(Integer::intValue).toArray();


标签:Java,int,ArrayList,List,Arrays,数组,互转,Integer,array
From: https://blog.51cto.com/xfxuezhang/5859806

相关文章

  • Java技能树评测
    慢慢的变优秀是我的清醒​​......
  • JavaScript语法变量一元运算符以及算数和比较运算符
    JavaScript-语法-变量-一元运算符运算符:一元运算符:只有一个运算数的运算符++  --  +(正号)++  --  :自增(自减)++(--)......
  • java异常机制和File类
    Error类用于描述java虚拟机无法解决的严重错误,通常无法编码解决。如:JVM垮掉了Exception用于描述因编程错误或者偶然外在因素导致的轻微错误,通常可以通过编码解决。如0作为......
  • java线程
    1.线程的历史单进程人工切换-纸带机CPU利用率不高,CPU在等人切换纸带.多进程批处理-多个任务批量执行ABCDE5个任务(一个QQ,一个微信,一个传奇,一个QQ音乐,一个WP......
  • Java新特性(1):Java 9和Java10
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 自从Java在2009年被Oracle收购之后,就不再开源,除了Oracle官方发布的版本之外,还有OpenJDK版本,这两者的区别可以自行找某度......
  • 牛客java基础语法在线编程-知识点小结(待完善)
    知识点小结一、输入输出Scanner类Scanner类在java.util包下,导包格式如下:importjava.util.Scanner;使用示例:importjava.util.Scanner;classMain01{publ......
  • LiquibaseException java.lang.ClassCastException: class java.time.LocalDateTime c
      https://forum.liquibase.org/t/liquibaseexception-java-lang-classcastexception-class-java-time-localdatetime-cannot-be-cast-to-class-java-lang-string/5059......
  • Vector底层逻辑 (ArrayList和Vector区别:ArrayList不安全,效率高 默认值为0需要 1.第一次
      (ArrayList和Vector区别:ArrayList不安全,效率高默认值为0需要1.第一次扩容为102.第二次为1.5倍 .Vector安全效率不高默认值为10不需要开始就去扩容直接赋值,满后......
  • JAVA IO流
    纯文本字符流比字节流效率高.1.这个理解的特别好:http://t.zoukankan.com/liaozuheng-p-13046873.html2.节点流与处理流的介绍:https://blog.csdn.net/wcg920212/article/d......
  • JAVA课程设计(附源码)
    Java课程设计选题Java课程设计说明本次课程设计的目的是通过课程设计的各个项目的综合训练,培养学生实际分析问题、编程和动手能力,提高学生的综合素质。本课程设计尝试使......