我想知道如果Java 8流處理內存分配如果終端操作是一個列表收集器。Java 8流列表收集器內存分配速度與預分配的循環
例如,考慮
List<Integer> result = myList.stream().map(doWhatever).collect(Collectors.toList());
VS
List<Integer> result = new ArrayList<>(myList.size());
for(String s : myList) {
result.add(doWhatever.apply(s));
}
在使用流的情況下,它是未知的名單將有多大增長,這意味着必須有某種再分配。這個假設是真的嗎?
結果列表的類型是什麼樣的鏈接列表,因此訪問元素的速度比ArrayList慢?
如果我從一開始就知道結果列表的大小,我不應該使用具有列表收集器的流嗎?
'收藏家。 toList()'使用'ArrayList'。重新分配的方式與其他任何'ArrayList'完全相同。 –