代码:

public class Test {public static void main(String[] args) {Integer[] a = {1, 2, 3};// 数组转成集合// 以下参数是一个可变参数,可以直接写数组,或者直接写可变参数值也行,比如Arrays.asList(1,2,3,4)这种形式List<Integer> list = Arrays.asList(a);System.out.println("输出集合中的元素:");for (Integer i : list) {System.out.println(i);}// 集合转成数组Integer[] b = list.toArray(new Integer[0]);System.out.println("输出数组中的元素:");for (Integer i : b) {System.out.println(i);}}
}

结果:

输出集合中的元素:
1
2
3
输出数组中的元素:
1
2
3

解释:

集合和数组的转换当然可以通过for循环来做,但是这种做法需要写比较多的代码,所以不是特别令人满意,毕竟大神已经做好轮子了,我们没有必要再去做轮子,对于数组转换成集合没有什么好说的,直接一个asList()方法就搞定了,对于集合转换成数组那就有点说头了,首先集合还有一个方法是无参的toArray(),不过这个方法的返回值是Object[],源码如下:

Object[] toArray();

但是我们还不能进行强制类型转换,毕竟可以强制类型转换单个对象,但是无法对数组进行转换,然后里面还有一个带参的toArray()方法,源码如下:

<T> T[] toArray(T[] a);

这个需要我们指定泛型,所以我们上面的代码就是Integer[] b = list.toArray(new Integer[0]);,至于里面为什么是new Integer[0],你可以这样思考,我们只需要指明一下类型,但是定义数组的时候我们必须指定数组的长度,不过这个长度也没有什么用,只是为了符合数组定义要求而已,所以为了节约内存,我们就把长度设置成0,这样也指定了数组类型,并且也没有浪费内存空间

java中集合和数组的相互转换相关推荐

  1. Java中arraylist和数组的相互转换

    Java中ArrayList和数组之间的相互转换 ArrayList转为数组 数组转为ArrayList 一.ArrayList转换数组 public static void arrayListToA ...

  2. java中集合转数组中_JAVA中集合转数组遍历

    JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray(). 代码: public static void main(String[] args) { // ...

  3. Java中集合与数组之间的转换方法

    一.Array 转为List 1.实现方法 :java中数组转list使用Arrays.asList(T... a)方法如下: public class Array2List {public stat ...

  4. Java中集合和数组的区别

    区别: 1)    数组的长度是固定的,集合的长度可以动态扩展 2)    数组只能存储相同类型的数据,集合可以存储不同的类型的数据 public static void main(String[] ...

  5. Java中List和数组Array和String之间的相互转换

    Java中List和数组Array和String之间的相互转换 之前面试的时候遇到一个问题,先给大家分享一下.问:我想分别得到list,string和数组的长度,我能通过什么代码来得到? 这个问题先留 ...

  6. java的集合和数组_Java集合和数组的区别

    Java集合和数组的区别 集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据 转换 数组转换为集合: Arrays ...

  7. Java中如何将一个数组分割成多个等长度的数组

    Java中如何将一个数组分割成多个等长度的数组,最后剩下的为一个素组 先看图 分析数据 提取公式 分装代码 1.如下我们需求 最近朋友android项目中有一个需求如下: 这一个长集合[item0, ...

  8. Java中集合拥有的共性方法

    在Java中集合的共性方法 1.在Java中集合作为最顶层的集合,他拥有所有集合有的共性方法.所以在定义实现类的时候可以使用多态. 集合拥有的共性方法: public boolean add(E e) ...

  9. java中集合的分类以及集合的选择

    一.java中的集合 一般同学都是从c语言起步的,刚开始使用java时,会对集合这个概念比较陌生,在c语言中我们表示数据的集合往往使用数组,在编写c程序时觉得数组完全可以满足我们的基本需要.而到了ja ...

最新文章

  1. mysql怎样删除上一行_mysql如何删除第一行数据
  2. libevent+多线程的服务器模型
  3. Simulink中From、Goto模块
  4. 防范SQL指令植入式***
  5. 【数据竞赛】竞赛宝典黑科技:基于开源结果的高端融合策略
  6. mysql小写转大写UPPER() 和大写转小写LOWER()
  7. 《程序员代码面试指南》第三章 二叉树问题 二叉树节点间的最大距离问题
  8. 记录cocos2d-x3.0版本号更改内容官方说明
  9. 【编程】基本程序设计模式
  10. Go 单元测试--Mock接口实现和对接口打桩
  11. Bootstrap 静止导航条
  12. 本地项目文件夹同步到GitLab的操作步骤
  13. Emacs Lisp 15 分钟入门
  14. 你真的会调试 Linux 内核故障吗,看完这一篇后你会茅塞顿开的!
  15. Linux卸载JDK(虚拟机自带JDK)
  16. Vue+element搭建后台管理系统-二、安装插件
  17. 暴躁算法(剑指系列)-每日一练
  18. golang通过onvif协议控制云台
  19. android banner指示器高度,Android 广告轮播 -ConvenientBanner 指示器大小、bottomMargin,leftMarfin的修改。...
  20. unity游戏开发毕设_《毕业设计(论文)-基于Unity游戏引擎的游戏设计》.doc

热门文章

  1. 华为鸿蒙太空人壁纸,华为太空人动态图片大全
  2. 蓝桥杯2022年(本科c++b组)
  3. 如何提交一个PR?【OpenHarmony成长计划】【OpenHarmony开源社区】
  4. Windows下nginx的启动,重启,停止命令
  5. iTerm2的自动补全
  6. Safari浏览器中input 光标lineheight失效 不居中
  7. Hadoop大数据零基础高端实战培训
  8. STM32遥控方法SONY PS2 、航模,STM32定时器PWM输入捕获航模接收机
  9. BUGS2_allwinner R40使用记录
  10. windows服务器双网卡链路聚合_Win10怎样绑定双网卡或多网卡做Nic Teaming链路聚合...