[ JDK ] 列表转数组 toArray
<T> T[] toArray(T[] a) :该方法返回一个数组,数组元素包含了 List<T> 中的所有元素,数组中的元素顺序和 List<T> 中的元素顺序保持一致。

该方法声明了类型参数(泛型参数) T ,代表数组元素的类型。请注意,返回值类型 T[] 和参数类型 T[] 是同一种类型,这就说明,参数指定的类型等同了返回值的类型。在本例,我们的参数指定为 new Person[roster.size()] ,它的类型是一个元素类型为 Person 的数组,这就代表返回值类型也是元素类型为 Person 的数组。
List<Person> roster = ... Person[] rosterAsArray = roster.toArray(new Person[roster.size()]);
该方法的参数是 T[] a ,若是 a 的大小能够装得下 List<T> 中的所有元素,该方法的返回值就是 a 。否则,该方法会创建一个新的数组,其类型和 a 保持一致,大小和 List<T> 元素个数保持一致,返回值就是新创建的数组。
方法的参数 new Person[roster.size()] ,它的大小刚好是 List<T> 元素的个数,能够装得下 List<T> 中的所有元素,所以,该方法返回值就是数组 new Person[roster.size()] ,无需创建新的数组。该方法的参数是 T[] a ,若是 a 的大小超过 List<T> 中元素的元素个数,剩余的空间会被设置成 null 。

该方法是基于数组的对象和基于 Collection 的对象( List 是 Collection 的子类)的桥梁,提供了把基于 Collection 的对象转化为基于数组的对象的通道。并且,该方法可以通过指定参数的类型,精确地控制返回值的类型,而不是简单地返回一个元素类型是 Object 类型的数组。参数类型是数组 T[] ,创建数组时,通过指定数组的大小( List<T> 的元素个数有多少,就指定数组的大小有多大),可以有效的避免空间的浪费。
[ JDK ] 列表转数组 toArray的更多相关文章
- .NET重思(三)-数组列表与数组的区别,栈集合和队列结合的区别
数组列表和数组十分相似,区别在于数组列表的容量是可以动态变化的,而数组的容量是固定的.数组即Array类,数组列表即ArrayList类,两者十分相似.不过,Array类在System命名空间下,Ar ...
- FastReport.Net中使用列表和数组作为报表数据源
大多数现代报告工具允许您使用几乎任何数据库,然而,并不是所有报表工具都能以一个数据源的列表或数组来工作.本文中将展示如何使用FastReport .Net报表工具来实现. 请注意以下重要几点: 清单中 ...
- perl5 第四章 列表和数组变量
第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮 1.数组的存取 2.字符串中的方括号和变量替换 3.列表范围 4.数组的输出 5.列表/数组的长度 ...
- Perl的列表和数组
列表和数组 列表 使用括号包围的元素,括号中的元素使用逗号隔开的是列表. 列表中的元素可以是字符串.数值.undef或它们的混合. 列表中的字符串元素需要使用引号包围. 空列表是括号中什么都没有的列表 ...
- Spring MVC 处理列表和数组数据
SpringMVC处理列表和数组类型: 当form提交多个参数时,可以使用@RequestParam(value="")注解将其注入到列表或数组中,否则参数无法传值 1 contr ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- Perl 学习笔记-列表和数组
笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...
- perl第三章 列表和数组
访问数组中的元素 $fred[0] $fred[1] $number=2.75; print $fred[$number-1] 结果就是print $fred[1] 特殊的数组索引1.对索 ...
- 07.AutoMapper 之列表和数组(Lists and Arrays)
https://www.jianshu.com/p/419a3b7f12d5 列表和数组(Lists and Arrays) AutoMapper只需要配置元素类型的映射配置,不需要针对列表和数组进行 ...
随机推荐
- 远景面试算法题——FolderSize
描述 文件被存储在磁盘上的时候,通常为cluster方式.每个cluster具有固定的大小,一个文件所消耗的空间量始终是cluster大小的整数倍.因此,如果cluster的大小为100字节,165字 ...
- pthread创建线程的简单演示
使用pthread创建子线程的简单步骤 导入头文件 #import <pthread.h> 指定新线程标识符 使用pthread创建线程的函数 根据result = 0 与否判断子线程 ...
- 深入认识XmlReader
深入认识XmlReader 摘要 XmlReader类是组成.NET的关键技术之一,极大地方便了开发人员对Xml的操作.通过本文您将对XmlReader有一个很好的认识,并将其应用到实际开发中. ...
- angularjs select标签中参数的传递
今天做的一个demo中需要一个下拉选择框,并根据所选择的内容向服务器发送请求. 首先百度了一下angularjs关于select的使用,一种采用ng-repeat的方式. <select ng- ...
- JsonArray和JsonObject遍历方法
一:遍历JsonArray String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'}, ...
- VMware Workstation 12 Pro 之安装林耐斯-LinuxMint-系统
VMware Workstation 12 Pro 之安装林耐斯-LinuxMint-系统... ---------------------- ---------------------------- ...
- jmeter性能测试 套路二
1.一般我们不会通过下面这种去跑性能测试 2.我们会通过这种方式去跑性能测试 3.录制自动化 就用新的 4.录制性能测试 就用
- Day1 - 服务器硬件基础
1.1 关于运维人员 1.1.1 运维的职责 1.保证服务器7*24小时 运行 2.保证数据不能丢 3.提高用户的体验(网站打开的速度) 1.1.2 运维原则 简单.易用.高效 === 简单.粗暴 ...
- 二、nginx搭建图片服务器
接上篇:Nginx安装手册 cd /usr/local/nginx/conf/ 配置图片服务器 方法一.在配置文件server{}中location /{} 修改配置: #默认请求 location ...
- Http和Socket详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp59 这不是同一层的协议 socket是一个针对TCP和UDP编程的借 ...