假設我有一個集合(LinkedList)。如何將集合轉換爲數組而不創建新數組?
Collection<String> list = new LinkedList<>();
for (int i = 0; i < 1_000_000; i++) {
String randomString = RandomStringUtils.random(i);
list.add(randomString);
}
Object[] objects = list.toArray();
當我調用toArray
方法,如果力量我的應用程序創建一個新的陣列。例如,在鏈表實現toArray
看起來是這樣的:
public Object[] toArray() {
Object[] result = new Object[size];
int i = 0;
for (Node<E> x = first; x != null; x = x.next)
result[i++] = x.item;
return result;
}
是否有可能恢復從集合陣列時不分配數組的新的記憶?
如果你不創建一個新的數組,你想要在哪裏存儲元素? – Tunaki