簡體   English   中英

使用 JAVA 8 將值插入列表

[英]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.

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