-2
我在一段相當簡單的代碼中得到了奇怪的結果。 這裏是有問題的代碼:在Java中遍歷LinkedList vs ArrayList的運行時間
List<Integer> arrayList = new ArrayList<Integer>(6200000);
List<Integer> linkedList = new LinkedList<Integer>();
for (int i = 0; i < 6200000; i++)
{
arrayList.add(i);
}
long startTime = System.currentTimeMillis();
for (int i = 0; i < 6200000; i++)
{
linkedList.add(i);
}
System.out.println(System.currentTimeMillis() - startTime);
現在,這裏的問題是: 當大小在 給出參數的ArrayList CTOR,爲「新的ArrayList(6200000)」,印刷值是總是大於2000. 當ArrayList CTOR沒有給出大小時,如 「new ArrayList()」,打印值爲1000或超過1000. 問題是多次執行給出不同的值,但是我的觀點是,這兩個描述的情景之間存在顯着差異,而我只是不在其中堅持原因。 ArrayList的構造方式如何影響與LinkedList相關的代碼? 有沒有人有線索?
謝謝!
創建錯誤的基準可能會導致令人困惑的結果。 – Kayaman