<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的更多相关文章

  1. .NET重思(三)-数组列表与数组的区别,栈集合和队列结合的区别

    数组列表和数组十分相似,区别在于数组列表的容量是可以动态变化的,而数组的容量是固定的.数组即Array类,数组列表即ArrayList类,两者十分相似.不过,Array类在System命名空间下,Ar ...

  2. FastReport.Net中使用列表和数组作为报表数据源

    大多数现代报告工具允许您使用几乎任何数据库,然而,并不是所有报表工具都能以一个数据源的列表或数组来工作.本文中将展示如何使用FastReport .Net报表工具来实现. 请注意以下重要几点: 清单中 ...

  3. perl5 第四章 列表和数组变量

    第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮  1.数组的存取  2.字符串中的方括号和变量替换   3.列表范围  4.数组的输出  5.列表/数组的长度  ...

  4. Perl的列表和数组

    列表和数组 列表 使用括号包围的元素,括号中的元素使用逗号隔开的是列表. 列表中的元素可以是字符串.数值.undef或它们的混合. 列表中的字符串元素需要使用引号包围. 空列表是括号中什么都没有的列表 ...

  5. Spring MVC 处理列表和数组数据

    SpringMVC处理列表和数组类型: 当form提交多个参数时,可以使用@RequestParam(value="")注解将其注入到列表或数组中,否则参数无法传值 1 contr ...

  6. python3.4学习笔记(十一) 列表、数组实例

    python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...

  7. Perl 学习笔记-列表和数组

    笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...

  8. perl第三章 列表和数组

    访问数组中的元素    $fred[0]   $fred[1] $number=2.75; print $fred[$number-1]  结果就是print $fred[1] 特殊的数组索引1.对索 ...

  9. 07.AutoMapper 之列表和数组(Lists and Arrays)

    https://www.jianshu.com/p/419a3b7f12d5 列表和数组(Lists and Arrays) AutoMapper只需要配置元素类型的映射配置,不需要针对列表和数组进行 ...

随机推荐

  1. leetcode First Bad Version(二分查找)

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  2. Spring中Druid链接池的配置

    本文记录了使用Druid的方法, 包括Spring和Spring boot中使用Druid的配置方法. Spring中配置Druid连接池 以链接mysql为例 1 添加druid依赖 <dep ...

  3. 第6天:DIV+CSS页面布局实战

    今天我从早上9:00写代码一直写到下午18:00,写的我差点抑郁了,还好最后终于写出了一个完整页面,没有做动画效果,就是练习了一下DIV+CSS布局,做的是福务达(www.zzfwd.cn)的主页,真 ...

  4. logify与theos的二三事

    最近逆向一个软件,无奈类名.方法名混淆的太厉害,class-dump后,很难猜出大致是哪个方法在起作用.用reveal 和 cycript 找到了viewcontrol 类,但类方法太多,还是不能确定 ...

  5. 常用的Linux发行版

    Linux发行版百花齐放 [内容摘要] 如今,众多的Linux发行版百花齐放,linux的阵营日益壮大,每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力.Linux发行版可谓是形形色色,它们 ...

  6. axios.js

    Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios  ...

  7. Git使用教程及常用命令大全

     一.git命令名词解释1.添加/跟踪/暂存:添加到本地索引       git add 文件名2.提交:提交到本地仓库       git commit -m '注释'3.推送:将提交到本地仓库的所 ...

  8. Windows界面设计标准

    Windows界面设计标准..- Windows界面设计标准 Windows 界面设计标准 1. 易用性 界面元素的名称.标签应该易懂,用词准确,避免使用模楞两可的字眼,要与同一界面上的其他元素易于区 ...

  9. 怎样查看当前QQ的版本号是多少

    怎样查看当前QQ的版本号是多少.. -------------- -------------

  10. Java 调用Azure认知服务Demo--Computer API

    说明 本文主要介绍使用Java代码,基于HTTP请求调用Microsoft Azure的认知服务.图片来源分别介绍了使用公网的URL和上传本地图片. 依赖的jar包下载地址: key的获取需要登录到A ...