【Java数组转集合】Arrays.asList() 方法(案例详解)

简介: Java基础之Arrays.asList() 方法案例详解!

一、业务场景

在开发过程中遇到过将数组转list的场景,当然有很多方式,比如最常见的for循环遍历添加等

本篇介绍一下Arrays.asList() 方法将数组转list集合

该方法是将数组转化成List集合的方法。

/**
 * 2021-7-25 13:10:07
 * 辰兮要努力
 */
public class ListDemo {
    public static void main(String[] args) {

        String [] nameArr ={"辰兮", "辰兮要努力", "ChenXi"};
        //数组转集合
        List<String> nameList = Arrays.asList(nameArr);
        System.out.println(nameList);

    }
}

输出结果

[辰兮, 辰兮要努力, ChenXi]

Arrays.asList此方法有部分弊端,转换出来的集合仅仅只能用来遍历操作,不能新增、删除元素


二、案例实践

1、注意事项:用此方法得到的List的长度是不可改变的

我们都知道数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。

补充讲解:由此方法转换而来的list集合:不支持add和remove方法

在这里插入图片描述

如果你要对此转换而来的集合进行新增和删除元素,程序会爆出UnsupportedOperationException异常

Exception in thread "main" java.lang.UnsupportedOperationException

原因:此方法返回的ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList

它是Arrays类自己定义的一个静态内部类,这个内部类没有实现add()、remove()方法,而是直接使用它的父类AbstractList的相应方法。

而AbstractList中的add()和remove()是直接抛出java.lang.UnsupportedOperationException异常的!

总结:

1、如果返回给你的集合你进需要进行遍历操作,就用Arrays.asList()。

2、如果你想对转换来的集合进行新增或移除的相关操作,建议采取其它方法,如遍历后,逐个添加


2、该方法不适用于基本数据类(byte,short,int,long,float,double,boolean)

/**
 * 2021-7-28 23:27:05
 * 辰兮要努力
 */
public class ListDemo {
    public static void main(String[] args) {

        //基本数据类型结果打印为一个元素
        int[] i ={11,22,33};
        List ints = Arrays.asList(i);
        for(Object o:ints){
            System.out.println(o.toString());
        }
        System.out.println("------------------------");
        
        Integer[] integers = {11,22,33};
        List<Integer> integerList = Arrays.asList(integers);
        for(int a:integerList){
            System.out.println(a);
        }
        System.out.println("------------------------");
    }
}

在这里插入图片描述


3、该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新

/**
 * 2021-7-28 23:27:10
 * 辰兮要努力
 */
public class ListDemo {
    public static void main(String[] args) {

        Integer[] integers = {11,22,33};
        List<Integer> integerList = Arrays.asList(integers);
        for(int a:integerList){
            System.out.println(a);
        }
        System.out.println("------------------------");
        integerList.set(0,2021);
        for (int i1 = 0; i1 < integers.length; i1++) {
            System.out.println(integers[i1]);
        }

    }
}

遍历原数组输出结果如下
在这里插入图片描述

后续我会陆续整理更多关于Java对基础数据操作的相关方法或语法,争取输出更多有趣的文章
请添加图片描述

期待有更多的进步!

---

非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

愿你们奔赴在自己的热爱里!

目录
相关文章
|
4天前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
3天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
28 4
|
4天前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
|
4天前
|
Java 开发者
|
3天前
|
存储 Java 开发者
Java中的集合框架深入解析
【10月更文挑战第32天】本文旨在为读者揭开Java集合框架的神秘面纱,通过深入浅出的方式介绍其内部结构与运作机制。我们将从集合框架的设计哲学出发,探讨其如何影响我们的编程实践,并配以代码示例,展示如何在真实场景中应用这些知识。无论你是Java新手还是资深开发者,这篇文章都将为你提供新的视角和实用技巧。
6 0
|
6月前
|
前端开发 Java
java前端:删除数组中指定元素的方法
java前端:删除数组中指定元素的方法
107 1
|
16天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
16 2
|
3月前
|
Java 索引
Java系列 之 Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan
这篇文章介绍了Java中数组复制的四种方法:`Arrays.copyOf()`、`Arrays.copyOfRange()`、`System.arraycopy()`和`clone()`方法,以及它们的使用场景和示例代码。
|
4月前
|
存储 Java 容器
Java数组的初始化方法
Java数组的初始化方法
|
6月前
|
存储 Java
Java数组与带参数方法:定义、调用及实践
Java数组与带参数方法:定义、调用及实践
68 1