Java 数组内置函数toArray详解

 更新时间:2021年06月28日 16:21:44   作者:九童  
这篇文章主要介绍了Java 数组内置函数toArray详解,文本详细的讲解了toArray底层的代码和文档,需要的朋友可以参考下

java.util.List中的toArray函数

java.util.List<E> @NotNull 
public abstract <T> T[] toArray(@NotNull T[] a)
Returns an array containing all of the elements in this list in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array. If the list fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this list.
If the list fits in the specified array with room to spare (i.e., the array has more elements than the list), the element in the array immediately following the end of the list is set to null. (This is useful in determining the length of the list only if the caller knows that the list does not contain any null elements.)
Like the toArray() method, this method acts as bridge between array-based and collection-based APIs. Further, this method allows precise control over the runtime type of the output array, and may, under certain circumstances, be used to save allocation costs.
Suppose x is a list known to contain only strings. The following code can be used to dump the list into a newly allocated array of String:
 
     String[] y = x.toArray(new String[0]);
 
Note that toArray(new Object[0]) is identical in function to toArray().

Overrides:
toArray in interface Collection
Params:
a – the array into which the elements of this list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Type parameters:
<T> – the runtime type of the array to contain the collection
Returns:
an array containing the elements of this list
Throws:
ArrayStoreException – if the runtime type of the specified array is not a supertype of the runtime type of every element in this list
NullPointerException – if the specified array is null
External annotations:
Abstract method toArray: @org.jetbrains.annotations.NotNull
Parameter a: @org.jetbrains.annotations.NotNull

翻译
java.util.List @NotNull

public abstract T[] toArray(@NotNull T[] a)

返回一个包含列表中所有元素的数组(从第一个元素到最后一个元素);返回数组的运行时类型是指定数组的运行时类型。如果列表适合指定的数组,则在其中返回该列表。否则,将使用指定数组的运行时类型和该列表的大小分配一个新数组。

如果列表适合指定的有空间的数组(即,数组的元素比列表的多),则紧挨着列表末尾的数组中的元素被设为null。(只有当调用者知道列表不包含任何空元素时,这在确定列表的长度时才有用。)

与toArray()方法一样,该方法充当基于数组和基于集合的api之间的桥梁。此外,这种方法允许精确控制输出数组的运行时类型,在某些情况下,可以用于节省分配成本。

假设x是一个只包含字符串的列表。下面的代码可以用来将列表转储到一个新分配的String数组中:

String[] y = x.toArray(new String[0]);

注意toArray(新对象[0])在函数中与toArray()相同。

覆盖:

toArray在接口集合

参数:

A -如果列表足够大,则存放列表中所有元素的数组;否则,将为此目的分配相同运行时类型的新数组。

类型参数:

-包含集合的数组的运行时类型

返回:

一个包含此列表元素的数组

抛出:

如果指定数组的运行时类型不是这个列表中每个元素的运行时类型的超类型,则会产生ArrayStoreException异常

NullPointerException -如果指定的数组为空

外部注释:

抽象方法:@org.jetbrains.annotations.NotNull

参数:@org.jetbrains.annotations.NotNull

public static void main(String[] args) {
    List<Double> asList = new ArrayList<Double>() {
        //使用匿名内部类来初始化。
        {
            add(35.6);
            add(3.2);
            add(90.);
        }
    };
    Double []sumVenderNumArray = new Double[]{333333.34,999.9,93.45,23.4,33.};
    Double [] sumVenderNumNum = asList.toArray(sumVenderNumArray);
    System.out.println(JSONObject.toJSONString(sumVenderNumNum));

}

运行结果:

在这里插入图片描述

到此这篇关于Java 数组内置函数toArray详解的文章就介绍到这了,更多相关Java toArray解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 为什么说HashMap线程不安全

    为什么说HashMap线程不安全

    本文主要介绍了为什么说HashMap线程不安全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • SpringBoot+Vue实现数据添加功能

    SpringBoot+Vue实现数据添加功能

    这篇文章主要介绍了SpringBoot+Vue实现数据添加功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • springMVC框架下JQuery传递并解析Json数据

    springMVC框架下JQuery传递并解析Json数据

    json作为一种轻量级的数据交换格式,在前后台数据交换中占据着非常重要的地位,这篇文章主要介绍了springMVC框架下JQuery传递并解析Json数据,有兴趣的可以了解一下。
    2017-01-01
  • 关于Scanner中nextInt()、nextLine()等方法总结与问题解决

    关于Scanner中nextInt()、nextLine()等方法总结与问题解决

    这篇文章主要介绍了关于Scanner中nextInt()、nextLine()等方法总结与问题解决,具有很好的参考价值,希望对大家有所帮助。
    2022-11-11
  • springboot集成mqtt超级详细步骤

    springboot集成mqtt超级详细步骤

    这篇文章主要介绍了springboot集成mqtt超级详细步骤,本文分步骤结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 使用eclipse打包Maven项目的实现步骤

    使用eclipse打包Maven项目的实现步骤

    本文主要介绍了使用eclipse打包Maven项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • SpringBoot+SpringSecurity+jwt实现验证

    SpringBoot+SpringSecurity+jwt实现验证

    本文主要介绍了SpringBoot+SpringSecurity+jwt实现验证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 教你如何写springboot接口 

    教你如何写springboot接口 

    这篇文章主要介绍了教你如何写springboot接口,Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,需要的朋友可以参考y一下
    2022-01-01
  • 一文详解Java中的动态填充Html模版并转PDF

    一文详解Java中的动态填充Html模版并转PDF

    在后端技术中,模板引擎和PDF生成工具是两个非常重要的领域,Thymeleaf和wkhtmltopdf是这两个领域的杰出代表,下面就来详细介绍一下Thymeleaf和wkhtmltopdf的技术特点吧
    2023-12-12
  • java继承中的构造方法实例解析

    java继承中的构造方法实例解析

    这篇文章主要介绍了java继承中的构造方法实例解析,针对继承中的构造方法的特点进行了实例分析,需要的朋友可以参考下
    2014-10-10

最新评论