Java List与数组互转方式

 更新时间:2023年07月25日 10:08:07   作者:sayyy  
这篇文章主要介绍了Java List与数组互转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java List与数组互转

数组转 List 方法1

Employee[] array = new Employee[]{emp1, emp2, emp3};
List<Employee> list = Arrays.asList(array);

Arrays.asList 返回的是固定长度的数组,扩大或缩小列表的操作将返回UnsupportedOperationException。

数组转 List 方法2

Employee[] array = new Employee[]{emp1, emp2, emp3};
List<Employee> list = new ArrayList<>(Arrays.asList(array));

解决了方法1中固定长度的问题。

数组转 List 方法3

Integer[] num = new Integer[]{1,2,3,4,5,6,7,8,9};
List<Integer> list = new ArrayList<>();
Collections.addAll(list, num);

数组转 List 方法4

Employee[] array = new Employee[]{emp1, emp2, emp3};
List<Employee> list = Stream.of(array).collect(Collectors.toList());

List 转数组方法1

Object[]  ans1 = list.toArray();

List 转数组方法2

Integer[] ans2 = list.toArray(new Integer[list.size()]);

ArrayList 的 toArray 方法源码:

Java中数组与List的区别

① 数组声明的时候要指定数组的大小,用基本类型。

② List接口是一个有序的 Collection,没有固定大小的限制。

其声明时用基本类型需要用其引用类型(List<E> list = new ArrayList<>(); 这里的E指的是引用类型),注意声明时不要List<E> list = null;,后面给list加元素会报错(add方法报空指针)。

① 数组向某下标插入元素是修改当前下标的元素。

② List向某下标插入元素是插入到指定下标,此下标原来的元素和后面的元素均后移。

List删除元素,删除当前下标的元素,后面的前移。

List的方法:

Arrays类的方法:

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

常用的方法有:toString转字符串、sort从小到大排序、equals和deepEquals、asList转List和List的toArray转数组、fill数组填充和copyOf数组拷贝。

① 自定义排序方式:

Integer[] n = {1,2,5,4,1};
Arrays.sort(n, ((o1, o2) -> o2-o1)); //数组降序排列

使用这种方式,数组类型需要为引用类型不能为基本类型

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Spring自定义命名空间

    使用Spring自定义命名空间

    这篇文章主要介绍了使用Spring自定义命名空间方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 详解Java编程中Annotation注解对象的使用方法

    详解Java编程中Annotation注解对象的使用方法

    这篇文章主要介绍了Java编程中Annotation注解对象的使用方法,注解以"@注解名"的方式被编写,与类、接口、枚举是在同一个层次,需要的朋友可以参考下
    2016-03-03
  • java线程池:获取运行线程数并控制线程启动速度的方法

    java线程池:获取运行线程数并控制线程启动速度的方法

    下面小编就为大家带来一篇java线程池:获取运行线程数并控制线程启动速度的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 一篇文章教你将JAVA的RabbitMQz与SpringBoot整合

    一篇文章教你将JAVA的RabbitMQz与SpringBoot整合

    这篇文章主要介绍了如何将JAVA的RabbitMQz与SpringBoot整合,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • Java中实现多线程关键词整理(总结)

    Java中实现多线程关键词整理(总结)

    这篇文章主要介绍了Java中实现多线程关键词整理,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • Java多线程程序中synchronized修饰方法的使用实例

    Java多线程程序中synchronized修饰方法的使用实例

    synchronized关键字主要北用来进行线程同步,这里我们主要来演示Java多线程程序中synchronized修饰方法的使用实例,需要的朋友可以参考下:
    2016-06-06
  • Spring中的循环依赖问题

    Spring中的循环依赖问题

    在Spring框架中,循环依赖是指两个或多个Bean相互依赖,这导致在Bean的创建过程中出现依赖死锁,为了解决这一问题,Spring引入了三级缓存机制,包括singletonObjects、earlySingletonObjects和singletonFactories
    2024-09-09
  • 详解Java停止线程的四种方法

    详解Java停止线程的四种方法

    如何停止java的线程一直是一个困恼我们开发多线程程序的一个问题吗,本文主要介绍了详解Java停止线程的四种方法,感兴趣的可以了解一下
    2021-05-05
  • java 定义长度为0的数组/空数组案例

    java 定义长度为0的数组/空数组案例

    这篇文章主要介绍了java 定义长度为0的数组/空数组案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • SpringBoot中创建bean的7种方式总结

    SpringBoot中创建bean的7种方式总结

    Spring是一款广泛应用于企业级应用程序开发的Java框架,其 IOC 和 DI 特性可以有效地管理应用程序中的对象,提高了应用程序的可维护性和可扩展性,那你知道spring有哪些方式将bean放入容器嘛,今天就给大家总结一下
    2023-07-07

最新评论