Java 数组转List的几种方法

Java 数组转List的几种方法Java 数组转 List 的几种方法一 Arrays asList 二 Collections addAll 三 Arrays stream arr collect Collectors toList 本文提供了几种 Java 中常用的数组转 List 的方法一 Arrays asList Array 转 ListString arr a b c List String list Arrays asList arr System out println String

本文提供了几种Java中常用的数组转List的方法

一、Arrays.asList

// Array 转 List String[] arr = { 
    "a", "b", "c"}; List<String> list = Arrays.asList(arr); System.out.println(JSONObject.toJSONString(list)); 

输出结果:

["a","b","c"] 

使用该方法有两个问题:

1. 使用Arrays.asList生成的list是定长的,无法增加或删除元素,调用add或remove方法会抛出UnsupportedOperationException异常

list.add("dd"); // list 添加元素 // list.remove(0); // list 删除元素 

输出结果:

Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at com.xhm.test.java.collection.ArrayToList.main(ArrayToList.java:19) 

2. 修改原数组中的元素值,List中对应的元素值也会改变

arr[2] = "ccc"; System.out.println(JSONObject.toJSONString(list)); 

输出结果:

["a","b","ccc"] 

二、Collections.addAll

// Array 转 List String[] arr1 = { 
    "a", "b", "c"}; List<String> list1 = new ArrayList<String>(); Collections.addAll(list1, arr1); System.out.println(JSONObject.toJSONString(list1)); list1.add("d"); // list 添加元素 System.out.println(JSONObject.toJSONString(list1)); list1.remove(0); // list 删除元素 System.out.println(JSONObject.toJSONString(list1)); 

输出结果:

["a","b","c"] ["a","b","c","d"] ["b","c","d"] 

三、Arrays.stream(arr).collect(Collectors.toList())

// Array 转 List String[] arr2 = { 
    "a", "b", "c"}; List<String> list2 = Arrays.stream(arr2).collect(Collectors.toList()); System.out.println(JSONObject.toJSONString(list2)); list2.add("e"); // list 添加元素 System.out.println(JSONObject.toJSONString(list2)); list2.remove(0); // list 删除元素 System.out.println(JSONObject.toJSONString(list2)); 

输出结果:

["a","b","c"] ["a","b","c","e"] ["b","c","e"] 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216549.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:36
下一篇 2026年3月18日 上午11:36


相关推荐

  • SystemUI.apk等特殊APK文件的反编译和编译技巧[通俗易懂]

    SystemUI.apk等特殊APK文件的反编译和编译技巧[通俗易懂]SystemUI.apk等特殊APK文件的反编译和编译技巧   第一:要在你的PC上建立Java的环境,才能执行编译工作。具体方法我这个就不说了,你百度或者Google下就知道了,很简单的。   第二:下载必要的工具。Apktool工具。   下载后解压(有三个文件aapt.exe,apktool.bat,apktool.jar),为了方便。将解压出

    2026年1月18日
    3
  • 计算机操作系统(第3版)课后习题答案(完整版)

    计算机操作系统(第3版)课后习题答案(完整版)第一章1.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第

    2022年5月30日
    144
  • NR 5G SSB介绍

    NR 5G SSB介绍SSB概念SSB包含了PSS,SSS,PBCH同步信号和PBCH块(SynchronizationSignalandPBCHblock,简称SSB),它由主同步信号(PrimarySynchronizationSignals,简称PSS)、辅同步信号(SecondarySynchronizationSignals,简称SSS)、PBCH三部分共同组成。…

    2022年6月15日
    69
  • MySQL 大表优化方案

    来源:manong 链接:segmentfault.com/a/1190000006158186 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: …

    2021年6月22日
    116
  • 类型转换异常处理java.lang.RuntimeException

    类型转换异常处理java.lang.RuntimeException前几天在做一个安卓项目的时候一直报java.lang.RuntimeException错,一直调试不出来,今天突然又灵感是不是文件配置出错了,果然在清单文件中少了一句 android:name=”.KXApplication”。02-0510:19:52.429:E/AndroidRuntime(16026):java.lang.RuntimeException:Una

    2022年7月18日
    18
  • Jenkins安装_jenkins sonar

    Jenkins安装_jenkins sonar前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月29日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号