簡體   English   中英

為什么 Java 在使用 List.toArray 時將 null 插入到數組中

[英]Why Java inserts null to array when using List.toArray

代碼片段的output

List<Integer> list = List.of(10, 20, 30, 40, 50);
Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
list.toArray(array);
System.out.println(Arrays.toString(array));

是:

[10, 20, 30, 40, 50, null, 7, 8, 9, 0]

我在ArrayList.toArray方法中找到了以下代碼:

if (a.length > size)
    a[size] = null;

這種行為的原因是什么? 為什么可能示例中的第 5 個元素是null而不是6

這種行為記錄在List::toArray(T[])的 Javadoc 中:

如果列表適合指定的數組並有剩余空間(即,數組的元素多於列表),則數組中緊隨列表末尾的元素設置為 null (這對於確定僅當調用者知道該列表不包含任何 null 元素時才該列表。)

我發現想出一個具體的例子 有點 困難,但至少null元素的null等於調用toArray之前列表的原始長度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM