java中集合和数组的相互转换
代码:
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中集合和数组的相互转换相关推荐
- Java中arraylist和数组的相互转换
Java中ArrayList和数组之间的相互转换 ArrayList转为数组 数组转为ArrayList 一.ArrayList转换数组 public static void arrayListToA ...
- java中集合转数组中_JAVA中集合转数组遍历
JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray(). 代码: public static void main(String[] args) { // ...
- Java中集合与数组之间的转换方法
一.Array 转为List 1.实现方法 :java中数组转list使用Arrays.asList(T... a)方法如下: public class Array2List {public stat ...
- Java中集合和数组的区别
区别: 1) 数组的长度是固定的,集合的长度可以动态扩展 2) 数组只能存储相同类型的数据,集合可以存储不同的类型的数据 public static void main(String[] ...
- Java中List和数组Array和String之间的相互转换
Java中List和数组Array和String之间的相互转换 之前面试的时候遇到一个问题,先给大家分享一下.问:我想分别得到list,string和数组的长度,我能通过什么代码来得到? 这个问题先留 ...
- java的集合和数组_Java集合和数组的区别
Java集合和数组的区别 集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据 转换 数组转换为集合: Arrays ...
- Java中如何将一个数组分割成多个等长度的数组
Java中如何将一个数组分割成多个等长度的数组,最后剩下的为一个素组 先看图 分析数据 提取公式 分装代码 1.如下我们需求 最近朋友android项目中有一个需求如下: 这一个长集合[item0, ...
- Java中集合拥有的共性方法
在Java中集合的共性方法 1.在Java中集合作为最顶层的集合,他拥有所有集合有的共性方法.所以在定义实现类的时候可以使用多态. 集合拥有的共性方法: public boolean add(E e) ...
- java中集合的分类以及集合的选择
一.java中的集合 一般同学都是从c语言起步的,刚开始使用java时,会对集合这个概念比较陌生,在c语言中我们表示数据的集合往往使用数组,在编写c程序时觉得数组完全可以满足我们的基本需要.而到了ja ...
最新文章
- HDOJ2019 ( 数列有序! ) 【水题】
- PL/pgSQL的anyelement例子
- 怎么向后删除?(删除光标后的字符)(按delete键)
- 在laravel5.8中集成swoole组件----用协程实现的服务端和客户端(nginx配置篇章)
- 作者:刘大伟(1984-),男,博士,烟台中科网络技术研究所助理研究员。
- 中国电信9月将率先推出5G新号段:资费也随之曝光 最高599元/月?
- C语言强化——学生管理系统
- 浅谈API测试与UI Auomation一点心得
- Spring依赖注入的三种方式
- python与机械教育初探_《Python与机器人程序设计》
- 良心好用无功能限制、珍藏单文件版Windows录屏软件分享!
- 编译原理自顶向下语法分析
- Hadoop基本原理
- c语言中指针几个字节,【C++】一个指针占几个字节?为什么呢?
- 计算机专业—毕业设计题目大全
- 江苏大学计算机学院复试题,本部基础A定稿-含答案(江苏大学计算机).doc
- 牛客《今日头条》笔试题
- IKEv2与IKEv1的差异
- Flare Network,跨越互操作性三难困境
- 华为云天筹AI求解器再次登顶 性能遥遥领先第二名11%
热门文章
- 鸿蒙小米note3,新旧一亿像素,Redmi Note 9 Pro、小米10、坚果R2、K30U拍照对比
- 转:说说售前,关于售前,售前软件工程师----写的很好
- html自动获取系统时间,js、html获取系统当前时间方法
- 计算机等级考试,详细说明(图片不显示)
- 2020年9月计算机应用基础统考真题,2020年9月网络教育统考《计算机应用基础》电子表格模拟题试卷操作题...
- 织梦php源码,织梦 | php教程|php源码|php学习
- 如何关闭SpringBoot的小图标
- 免费的设备管理app
- html滚动字幕怎么设置大小,css怎么设置滚动条宽度?
- 网站安全检测:推荐 8 款免费的 Web 安全测试工具