Java数组转List集合

在Java中,数组与集合是两种不同的数据结构。数组是定长的,一旦长度定义好后就不能再进行扩容或缩容;而集合则可以动态地增加或减少元素,非常方便。但有时,我们需要将数组转换成List集合,比如在使用一些API时,这种操作会变得十分必要。

一、将数组转换成List集合的两种方法

Java提供了两种方式可以将数组转换成List集合,一种是使用Arrays类提供的asList()方法,另一种是通过循环遍历数组,逐一添加到List中。

1、使用Arrays类提供的asList()方法

Integer[] arr = {1, 2, 3, 4, 5};

List<Integer> list = Arrays.asList(arr);

System.out.println(list); // [1, 2, 3, 4, 5]

首先,我们需要创建一个Integer类型的数组arr,其中包含了5个元素。使用Arrays类提供的asList()方法将该数组转换成List集合,最后输出了转换后的结果。

需要注意的是,使用asList()方法返回的List是一个不可变的List。意思是说,如果我们试图添加或删除元素都会抛出UnsupportedOperationException异常。该方法底层使用的是数组,所以会对数组进行直接的操作。

2、通过循环遍历数组添加到List中

Integer[] arr = {1, 2, 3, 4, 5};

List<Integer> list = new ArrayList<>();

for (Integer i : arr) {
    list.add(i);
}

System.out.println(list); // [1, 2, 3, 4, 5]

上述代码通过循环遍历数组arr,逐一将其添加到List集合中,最后输出了转换后的结果。与asList()方法不同,这种方式转换的List是可变的。

二、数组转换成List的注意事项

1、基本类型数组的转换

如上面的示例所示,我们演示的都是将Integer类型的数组转换成List集合。对于基本类型数组,操作稍微有些区别。

int[] arr = {1, 2, 3, 4, 5};

List<Integer> list = new ArrayList<>();

for (int i : arr) {
    list.add(i);
}

System.out.println(list); // [1, 2, 3, 4, 5]

由于泛型不能接受基本类型,所以我们需要将基本类型的数组转换成对应的包装类型,如示例中将int数组转换成了Integer类型的List集合。

2、对转化后的List集合进行修改

使用asList()方法转换的List是不可变的,尝试对其添加或删除元素都会引发异常。以下示例代码中,试图向asList()转化后的List集合中添加元素,运行时会抛出UnsupportedOperationException异常。

String[] arr = {"a", "b", "c", "d", "e"};

List<String> list = Arrays.asList(arr);

list.add("f");

而使用循环遍历数组转换成的List则是可变的,我们可以随意的对其添加、删除元素。

三、小结

本文详细介绍了Java中将数组转换成List集合的方法以及注意事项。通过本文的讲解,相信大家能够轻松的应用这两种转换方法,并在实际编程中运用到。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/240724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:23
下一篇 2024-12-12 12:23

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • Tensor to List的使用

    Tensor to List是TensorFlow框架提供的一个非常有用的函数,在很多的深度学习模型中都会用到。它的主要功能是将TensorFlow中的张量(Tensor)转换为P…

    编程 2025-04-29

发表回复

登录后才能评论