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#的枚举器
随机推荐
- C++11 double转化为string
C++11转化double为string是一件很容易的事情. 方法: 1:使用C中的sprintf函数,这里就不说了. 2:使用std::ostringstream.这个与std::cout是一样的. ...
- Redis从入门到精通【centos下的安装】
上传redis 到服务器 解压并重命名 然后yum -y install gcc-c++ zlib zlib-devel pcre pcre-devel openssl openssl-devel 然 ...
- form表单老忘的
禁止拉伸 textarea{ resize:none; } 左侧 label 对齐注意事项 必须要和 label-width 共同使用,才会生效. 表单域标签的宽度,直接写入 Form, 子元素 fo ...
- RandomShuffleQueue
一.几个函数 RandomShuffleQueue类 __init__(self, capacity, min_after_dequeue,dtypes, shapes=None,names=None ...
- An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
问题描述 首先,这是一个提示信息而不是报错,并不影响 Tomcat 的使用.它是建议你使用一个 Tomcat 的性能调优原生库文件 tcnative-1.dll 几天前,我想尝试一下 Apac ...
- kmp算法 模板
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- requests补充
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中,POST 一般用来向服务端提交数据,本文 ...
- cocos creator中粒子效果的使用
就如同上图的星星特效一样,在触碰时产生特效,但是并不销毁节点,因为要使用很多次,因此使用节点池NodePool保存起来的. 以下是使用粒子效果使要使用到的一些基本控制函数: 我的使用:
- vmware安装VMTools , VirtualBox "安装增强功能"
https://www.vmware.com/support/ws45/doc/new_guest_tools_ws.html 直接参考官方文档,中文没找到啥有用的资料 https://www.cnb ...
- JMeter3.0启动日志报错WARN - org.jmeterplugins.repository.Plugin: Unable to load class解决方法
解决方法: 通过sh find-in-jars 'HlsSampler' -d /data/apache-jmeter-3.0/lib/ext/确定这个class文件在哪个jar包 由于find-in ...