由于在学习过程中经常碰到这么一个问题,就是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数组和集合的相互转换的更多相关文章

  1. Java中数组与集合的相互转换

    数组与List的相互转换 List转数组:采用集合的toArray()方法 数组转List:采用Arrays的asList()方法 数组转换为集合 注意:在数组转集合的过程中,要注意是否使用了视图的方 ...

  2. java 数组与集合(list)相互转化

    上代码 package com.core.array2collection; import java.util.ArrayList; import java.util.Arrays; import j ...

  3. java 数组和集合

    1.概念说明 区别:数组固定长度的,集合,数组的长度是可以变化的. List,继承Collection,可重复.有序的对象 Set,继承Collection,不可重复.无序的对象 Map,键值对,提供 ...

  4. Java数组转集合与集合转数组的坑

    在Java中将数组转为集合,会用到Arrays.asList()的方法,然而,这个方法却与我们的预期期望存在一些出入,当用到asList方法将数组转化成List列表时,对得到的List列表进行add( ...

  5. java数组或集合返回空的问题

    在有返回值的情况下,平时我写代码基本遇到错误什么都是返回null,我因为我觉得把数组或集合这个初始化占空间. 但是我发现这样在每次客户段调用都要进行非空判断,而且有时调用内置api还容易报错误,于是解 ...

  6. Java数组转集合之Arrays.asList()用法

    Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...

  7. JAVA数组和集合谁是儿子

    Java有哪些数据存储方式? 基本数据类型(1byte3整2小数1字符1布尔)分别是byte,short,int long,flort,double,char,boolean(颜色好喜庆的样子O(∩_ ...

  8. Java数组、集合的三种遍历方式(包懂)

    1 for循环 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } 2 foreach循环,这种 ...

  9. Java数组、集合

    Vector类     类似C#的ArrayList.可扩展的数组,带有一些特定方法   Hashtable类     与C#的类似   Enumeration接口     类似C#的枚举器

随机推荐

  1. Git(1):版本库+工作区+暂存区

    参考博客:https://blog.csdn.net/qq_27825451/article/details/69396866

  2. HDU-魔咒词典(字符串hash)

    魔咒词典 TimeLimit: 8000/5000 MS (Java/Others)  MemoryLimit: 32768/32768 K (Java/Others) 64-bit integer ...

  3. 无法获得VMCI驱动程序的版本:句柄无效

    解决方法: 查找到 vmci0.present="TRUE" 代码,将TRUE更改为FALSE保存即可

  4. Zygote及System进程启动

    1.  init 根据init.rc 运行 app_process, 并携带‘--zygote' 和 ’--startSystemServer' 参数. 2.  AndroidRuntime.cpp: ...

  5. curl常用命令备忘

    #####(输出请求头信息) curl -I xxx-Pro:test xxx$ curl -I https://www.baidu.com/ HTTP/1.1 200 OK Accept-Range ...

  6. 如何隐藏nginx版本号

    vi /etc/nginx/nginx.conf 配置文件中,http区段中插入“server_tokens  off;”,重新载入配置文件 worker_processes 1; events { ...

  7. muduo资料

    muduo资料 muduo(一)

  8. Tomcat 启动报错SEVERE: Unable to process Jar entry [javassist/util/proxy/SerializedProxy$1.class]

    错误信息 springboot + spring mvc 的maven项目,在tomcat启动的时候报错,错误信息如下: SEVERE: Unable to process Jar entry [ja ...

  9. openssl私钥转换为PKCS8

    先装openssl 原来 -----BEGIN DSA PRIVATE KEY----- 转换后 -----BEGIN PRIVATE KEY----- openssl pkcs8 -topk8 -i ...

  10. Intellij IDEA 从数据库生成 JPA Entity

    首先,需要从调用 Database 窗口 View>Tool Windows>Database 添加到数据库的连接 选择数据的表,然后右击 选择 Scripted Extensions & ...