Java数组转集合方式总结

一、Java数组转List集合

String[] strArr = {"apple", "banana", "orange"};
List list = Arrays.asList(strArr);

Arrays.asList()是最常见的将数组转换为List的方法,该方法返回一个List集合,使用起来非常方便。需要注意的是,该方法返回的 List 不是 java.util.ArrayList,而是 java.util.Arrays$ArrayList,它是 Arrays 内部类,继承了 AbstractList,实现了 List、RandomAccess(提供快速随机访问)和 Cloneable 接口。与 ArrayList 不同的是,数组转化为 ArrayList 后长度不可改变。

由于Arrays.asList()方法返回的是一个固定大小的List,所以不能使用像add()和remove()这样的修改集合大小的方法。如果使用这些方法,会抛出 UnsupportedOperationException 异常。

//修改第二个元素
list.set(1, "grape");
System.out.println(Arrays.toString(strArr)); //输出:[apple, grape, orange]
//执行如下代码将会抛出UnsupportedOperationException异常
list.add("peach");

二、Java数组转ArrayList集合

String[] strArr = {"apple", "banana", "orange"};
List list = new ArrayList(Arrays.asList(strArr));

如果想要像 ArrayList 一样可以随意增加、删减元素,可以将Arrays.asList()方法得到的 List 转化为 ArrayList。如上面代码所示,需要将 Arrays.asList() 得到的 List 作为 ArrayList 构造方法的参数传入。

三、Java数组转LinkedList集合

String[] strArr = {"apple", "banana", "orange"};
List list = new LinkedList(Arrays.asList(strArr));

同样地,如果需要得到 LinkedList,只需要将 LinkedList 构造方法的参数传入 Arrays.asList()方法得到的 List 即可。

四、Java数组转HashSet集合

String[] strArr = {"apple", "banana", "orange"};
Set set = new HashSet(Arrays.asList(strArr));

Arrays.asList()方法也可以将数组转化为 Set 集合,比如上例的HashSet。需要注意的是,由于 Set 是不可重复的集合,如果数组中有重复元素,转换为 Set 后只会保存一个元素。

五、Java数组转LinkedHashSet集合

String[] strArr = {"apple", "banana", "orange"};
Set set = new LinkedHashSet(Arrays.asList(strArr));

同样地,如果需要得到 LinkedHashSet,只需要将 LinkedHashSet 构造方法的参数传入 Arrays.asList()方法得到的 List 即可。

六、Java数组转TreeSet集合

String[] strArr = {"apple", "banana", "orange"};
Set set = new TreeSet(Arrays.asList(strArr));

如果需要得到排序后的 Set 集合,可以使用 TreeSet。TreeSet 会对元素进行排序,要求元素必须实现Comparable接口。如果没有实现 Comparable 接口,可以使用 TreeSet 的构造方法传入一个 Comparator,自定义排序规则。

七、Java数组转Stream流

String[] strArr = {"apple", "banana", "orange"};
Stream stream = Arrays.stream(strArr);

Java 8 引入了 Stream 流,可以使用Arrays类的stream()方法将数组转换为流。Stream 流提供了大量的操作和中间处理器,可以方便地对元素进行过滤、操作、排序等等。

八、Java数组转IntStream流

int[] intArr = {1, 2, 3};
IntStream intStream = Arrays.stream(intArr);

如果数组是基本类型的数组,比如int数组,可以使用Arrays类的stream()方法将其转换为对应的Stream流。

九、Java数组转为字符串

String[] strArr = {"apple", "banana", "orange"};
String str = Arrays.toString(strArr);
System.out.println(str); //输出:[apple, banana, orange]

在 Java 中,将数组转换为字符串可以使用Arrays类的toString()方法:

综上所述,Java数组转集合的方式有很多,我们可以根据需要选择合适的方法。需要注意的是,通过Arrays.asList()方法得到的 List 长度不可变,如果想要随意添加、删除元素,需要将其转换为 ArrayList。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XYGXXYGX
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相关推荐

  • 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
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29

发表回复

登录后才能评论