Re: [問題] 有沒有辦法取代或改善List的效率?
※ 引述《tkcn (小安)》之銘言:
: ※ 引述《Mewra ()》之銘言:
: : 目前的程式需要處理1000K以上的node,
: : 這部份的運作程式如下
: : ArrayList<Integer> originalRandomArray = new ArrayList<Integer>();
: : protected ArrayList<Integer> randomArray = new ArrayList<Integer>();
: : 這部份code的目的是將originalRandomArray裡取出來的CHANCE_MOVE%個nodes存到
: : randomArray去. 但整個程式在nodeNumber = 1000000時, 處理時間多了2小時
: : (原本是1小時, 但是是用簡單的方法做出一個不完全的random).
: : 請問有辦法改進效率嗎? 謝謝
: 其實 ArrayList 內部是透過陣列實作, (預設長度是 10)
: 而當陣列大小不夠用時,
: 就會再重新產生一個長度為原先 1.5 倍的陣列,
: 並且將陣列中所有元素複製過去。
: 所以我的想法是...
: 如果能夠一開始就指定適當的 initialCapacity,
: 也許就能夠省去一大堆不必要的時間。
謝謝指教
我等下來試試看直接指定大小來處理.
還有shuffle雖好用, 但我剛發現它也增加了25%的處理時間
待我稍微改進後再來跟大家報告
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.180.59
討論串 (同標題文章)