java数组和集合的相互转换
由于在学习过程中经常碰到这么一个问题,就是java中几种装数据的容器之间的转换,所以写了这篇随笔专门来总结这些转换方法。
数组转集合:
1.遍历,最常用的方法,但是过程会繁琐一点
        int arrs[] = {1, 2};
        //1.遍历
        List<Integer> list = new ArrayList<>();
        for (int ele : arrs) {
            list.add(ele);
        }
        System.out.println(list);    
2.使用数组工具类的asList()方法
但是这种方法却有其局限性,如果传入的参数是一个数组,那么这个数组一定要是引用类型才能将其转换为List集合,当传入基本数据类型数组时则会将这个数组对象当成一个引用类型对象存进List集合。


可以看到传入基本数据类型时,打印该列表是打印了传入的数组的地址值。也就是说但你有一个基本数据类型的数组时,你想要将其转换成集合时,直接用这种方法是行不通的。
或者你所拥有的一组数据很少时,你也可以直接将其传入asList()方法的参数中,就像这样

这种方法显然不太好用,那怎么将一组基本数据类型的数组转换成集合呢,我们首先想到的是将该基本类型数组转换成其对应包装类类型的数组(遍历转换也可以),然后我就去百度了一下怎么将基本类型数组转换成其对应包装类类型的数组,然后就搜到了下面两种方法(原文链接:https://zhidao.baidu.com/question/628312636366178684.html)。


由于这两种方法设计的知识层较深(触及到我的知识盲区),大家想要了解可自行百度。
集合转数组:
1.遍历
简单易懂
2.使用集合的toArray()方法

为什么不用toArray()它的无参方法呢,因为它的无参方法返回的是一个Object类型数组,即使你的集合是带泛型。所以用那个方法会面临一个Object类型数组之后的数据转型,相对用它的有参方法会更麻烦。下面是其官方文档.

以上就是这篇随笔的所有内容,由于我自己目前也只是个初学者,所以上面难免有很多不严谨和错误的地方,请大家多多指正,大家一起学习,谢谢大家。
java数组和集合的相互转换的更多相关文章
- Java中数组与集合的相互转换
		数组与List的相互转换 List转数组:采用集合的toArray()方法 数组转List:采用Arrays的asList()方法 数组转换为集合 注意:在数组转集合的过程中,要注意是否使用了视图的方 ... 
- java 数组与集合(list)相互转化
		上代码 package com.core.array2collection; import java.util.ArrayList; import java.util.Arrays; import j ... 
- java 数组和集合
		1.概念说明 区别:数组固定长度的,集合,数组的长度是可以变化的. List,继承Collection,可重复.有序的对象 Set,继承Collection,不可重复.无序的对象 Map,键值对,提供 ... 
- Java数组转集合与集合转数组的坑
		在Java中将数组转为集合,会用到Arrays.asList()的方法,然而,这个方法却与我们的预期期望存在一些出入,当用到asList方法将数组转化成List列表时,对得到的List列表进行add( ... 
- java数组或集合返回空的问题
		在有返回值的情况下,平时我写代码基本遇到错误什么都是返回null,我因为我觉得把数组或集合这个初始化占空间. 但是我发现这样在每次客户段调用都要进行非空判断,而且有时调用内置api还容易报错误,于是解 ... 
- Java数组转集合之Arrays.asList()用法
		Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ... 
- JAVA数组和集合谁是儿子
		Java有哪些数据存储方式? 基本数据类型(1byte3整2小数1字符1布尔)分别是byte,short,int long,flort,double,char,boolean(颜色好喜庆的样子O(∩_ ... 
- Java数组、集合的三种遍历方式(包懂)
		1 for循环 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } 2 foreach循环,这种 ... 
- Java数组、集合
		Vector类 类似C#的ArrayList.可扩展的数组,带有一些特定方法 Hashtable类 与C#的类似 Enumeration接口 类似C#的枚举器 
随机推荐
- Linux定时执行PHP
			1.使用crond服务 crontab -e #编辑任务列表 crontab -l #展示任务列表 26 15 * * * /usr/local/php70/bin/php -q /data/www/ ... 
- Android studio 常见错误修改
			一,依赖冲突 All com.android.support libraries must use the exact same version specification (mixing versi ... 
- Rest分页接口开发
			简单描述:需求说后端写一个XX数据的分页接口,给前端口调用,其实有一个PageHelper的工具类可以直接使用但是老大不让用,得用sql写,.小Kiss啦.直接上代码 代码: //Controller ... 
- 末学者笔记--SSHD服务及SCP用法
			sshd服务讲解 1.SSHD服务 介绍:SSH 协议:安全外壳协议.为 Secure Shell 的缩写.SSH 为建立在应用层和传输层基础上的安全协议. 默认端口22 作用: sshd服务使用SS ... 
- 2018-2019-2 网络对抗技术 20165328 Exp3 免杀原理与实践
			一.实验要求: . 实践内容(.5分) .5分),msfvenom生成如jar之类的其他文件(.5分),veil-evasion(.5分),加壳工具(.5分),使用shellcode编程(1分) .5 ... 
- js 去掉数组对象中的重复对象
			export function deteleObject(obj) { var uniques = []; var stringify = {}; for (var i = 0; i < obj ... 
- mysql记录执行的SQL语句
			show variables like "general_log%"; SET GLOBAL general_log = 'ON';SET GLOBAL general_log = ... 
- TFS2015创建项目
			1,在TFS服务器上的团队项目集合中创建集合 2,创建集合完毕后,在VS2017中选择管理连接,创建对应的管理连接. 3,团队资源管理器中新建团队项目.后续就是下一步,下一步完成.帐号权限 ... 
- Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题
			问题如题:Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题 解决办法:通过火狐浏览器工具发现是时间格式不对的原因,需要将时间格式修改为:yyyy-MM--DD ... 
- UOJ#370. 【UR #17】滑稽树上滑稽果 动态规划
			原文链接www.cnblogs.com/zhouzhendong/p/UOJ370.html 题解 首先易知答案肯定是一条链,因为挂在链的最下面肯定比挂在其他节点上赚. 问题被转化成了从一个集合中不断 ... 
