![](/img/trans.png)
[英]Why does Java's List have “List.toArray()”, but arrays don't have “Array.toList()”?
[英]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.