如何将一个数组转成集合数组_java数组转list集合

如何将一个数组转成集合数组_java数组转list集合如何将一个数组转成集合?java.util.Arrays类为我们提供了一个方法Arrays.asList(T…a)此方法可以将数组转换成一个arrayList集合使用方法: publicstaticvoidmain(String[]args){ String[]array={“张三”,”李四”,”王五”}; List<String>asList=Arrays.asList(array); System.out.println(asList.toStr

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

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

如何将一个数组转成集合?

java.util.Arrays 类为我们提供了一个方法
Arrays.asList(T… a)

此方法可以将数组转换成一个arrayList集合

使用方法:

	public static void main(String[] args) { 
   
		String[] array= { 
   "张三","李四","王五"};
		List<String> asList = Arrays.asList(array);
		System.out.println(asList.toString());	
	}

输出:

[张三, 李四, 王五]

注意:通过Arrays.asList(T… a)转换后的集合不可以进行添加或删除等修改操作,否则会报错:
向数组转换后的集合添加元素:

	public static void main(String[] args) { 
   
		String[] array= { 
   "张三","李四","王五"};
		List<String> asList = Arrays.asList(array);
		asList.add("赵六");
		System.out.println(asList.toString());	
	}

向数组转后的集合删除元素:

	public static void main(String[] args) { 
   
		String[] array= { 
   "张三","李四","王五"};
		List<String> asList = Arrays.asList(array);
		asList.remove(0);
		System.out.println(asList.toString());	
	}

会发现,报了一个同样的错:

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.remove(Unknown Source)
	at com.strCount.Str01.main(Str01.java:11)

调用Arrays.asList()生成的List的add、remove方法时报异常,这是因为Arrays.asList() 返回的是Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重写了这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。解决方法如下:

	public static void main(String[] args) { 
   
		String[] array= { 
   "张三","李四","王五"};
		List<String> asList = Arrays.asList(array);
		ArrayList arrayList = new ArrayList(asList);
		arrayList.add("赵六");
		System.out.println(arrayList.toString());	
	}

输出:

[张三, 李四, 王五, 赵六]

注意此时的集合已不再是之前转换后的集合,而是重新创建了一个新的集合,并且将转换后的集合复制进去,再进行操作

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navigator.appName检测浏览器

    navigator.appName检测浏览器functiondectionBrower(){varbrowerName=navigator.appName;alert(browerName);}//谷歌浏览器显示Netscape//火狐浏览器显示Netscape经测试我发现Chrome,Firefox,Safari,opera,就连IE浏览器用navigator.appName检测都是Netscape…

    2022年9月12日
  • traceroute的工作原理

    traceroute的工作原理MyySophia5个月前traceroute的工作原理是利用ICMP差错控制报文中的TTL超时会回向源点发送一个时间超时报文。例如A主机tracerouteB主机,A会封装一些分组,这些分组很特殊,例如第一个分组的TTL设置为1,第二个分组的TTL设置为2以此类推…….当第一个分组到达第一个路由器时,发现TTL变成了0就会给源主机发送一个时间超时报文,这也就知道了这…

    2022年7月21日
  • C# Winform界面美化(借助IrisSkin实现)

    C# Winform界面美化(借助IrisSkin实现)一.添加控件IrisSkin4.dll。方法:先把IrisSkin4.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin4.dll文件…..).IrisSkin4.dll文件最好放在当前项目bin\Debug文件中.1.右键“工具箱”→“添加选项卡”改名为→“我的皮肤”。2.右键“皮肤”→“选择项”弹出对话框3.点击“浏览“→找到IrisSkin…

    2022年5月8日
  • Java 内存溢出思维导图

    Java 内存溢出思维导图

    2022年3月4日
  • CentOs6.5安装Docker中:No package docker-io available[通俗易懂]

    CentOs6.5安装Docker中:No package docker-io available[通俗易懂]在Centos中安装docker时出现:No package docker-io available 说是yum没有找到docker这个包,

    2022年6月13日
  • 大数据Lambda架构详解

    大数据Lambda架构详解Lambda架构是NathanMarz提出的一个实时大数据处理框架。NathanMarz是著名的实时大数据处理框架Storm的作者,Lambda架构就是其根据多年分布式大数据系统的经验总结提炼而成。NathanMarz在BigData:Principlesandbestpracticesofscalablereal-timedatasystems一书中提到了很多实时大数据系统的关键特性,包括容错性,健壮性,低延迟,可扩展,通用性,方便查询等,Lambda就是其根据这些特性设计的一

    2022年6月25日

发表回复

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

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