[英]Value insertion into list using JAVA 8
public static void main(String[] args) {
List<Long> list = new ArrayList<>();
for (long i = 1; i < 100000000; i++) {
list.add(i);
}
}
這個循環需要太長時間才能將值插入列表中,JAVA 8 中是否有任何功能,使用相同的任務將在最短的時間內執行。
如果列表不是ArrayList
不是強制性的:
Long[] array = new Long[100_000_000];
Arrays.parallelSetAll(array, Long::valueOf);
List<Long> list = Arrays.asList(array);
我沒有做過任何時間測量。 從您可以設置值的意義上說,該列表是可修改的,但它具有固定大小,沒有添加或刪除。
如果您確實需要可變大小的列表,您可以嘗試:
List<Long> list = new ArrayList(Arrays.asList(array));
但是,它在某種程度上違背了利用並行執行的想法,而且我不再確定與您已經獲得的速度相比如何。
編輯:如果列表根本不需要修改,請制作自己的“列表”實現,它不存儲任何實際數據並在每次請求元素時計算值。 然后初始化將不需要時間。 為此,您可以將AbstractList
子類化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.