java中数组转成list_java数组转json

java中数组转成list_java数组转jsonJava数组转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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文提供了几种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"]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172247.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • The matrix cookbook (矩阵计算)pdf

    The matrix cookbook (矩阵计算)pdfThematrixcookbook(矩阵计算)pdf版本,适合矩阵求导和计算,下载链接:下载地址

  • 基于DNS解析的GSLB《CDN技术详解》

    基于DNS解析的GSLB《CDN技术详解》基于DNS解析的GSLB工作方式基于DNS解析的GSLB方案实际上就是把负载均衡设备部署在DNS系统中。在用户发出任何应用连接请求时,首先必须通过DNS系统来请求获得服务器的IP地址,基于DNS的GSLB正是在返回DNS解析结果的过程中进行智能决策,给用户返回一个最佳的服务器的IP地址。从用户的视角看,整个应用流程与没有GSLB参与时没有发生任何变化。DNS系统本身是具备简单负载分配能力的,这…

  • 启动Redis报错:Could not create Server TCP listening socket *:6379: bind: Address already in use–解决办法

    启动Redis报错:Could not create Server TCP listening socket *:6379: bind: Address already in use–解决办法最后一句提示:6379地址已经在使用(6379是redis默认的端口)如图我自己输入指令./redis-server显示Redis已经开启服务1)正常解决方法三部①通过指令找到redis进程,查看所有关于它的进程详情。ps-ef|grefredisroot308610Apr24?00:00:07./bin/redis-…

  • 数据库 — char、varchar、varchar2区别

    数据库 — char、varchar、varchar2区别char、varchar、varchar2区别char是定长的,varchar是变长的。varchar2应该是varchar的升级,只有ORACLE才有,这里不作讨论。char定长存储,速度快,但是存在一定的空间浪费,适用于字段不是很大,对速度要求高的场合。速度快是因为其在物理上是按定长存储的,这样,就可以根据偏移址一次取出固定长度的字符。varchar变长存储,效率不如char。…

  • Intellij IDEA快捷键生成Getter、Setter和构造器[通俗易懂]

    Intellij IDEA快捷键生成Getter、Setter和构造器[通俗易懂]隔一个暑假不用,再次使用Idea快捷键都忘的差不多了。特此记录下快捷键生成Getter/Setter等。Alt + Insert 组合,可唤出选择面板:选择自己需要的即可。…

  • 几款软件加密/加壳工具的比较「建议收藏」

    几款软件加密/加壳工具的比较「建议收藏」几款.Net加密/加壳工具的比较前言使用过.NET的程序员都知道,.NET是一个巨大的跨时代进步,它开发效率高、功能强、界面观、耐用、新的语言C#已经提交为行业规范、CLR共公运行库资源丰富,这所有的特点标志着它成为主流编程语言是必然的。可是它也有一个缺点,那就是编译好的程序集可以完全反编译成源代码,这给一些不法份子提供了很好的机会,试想想,您辛苦的劳动成果就这样给了别…

发表回复

您的电子邮箱地址不会被公开。

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