Java 數組內置函數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解析內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: