作者Mewra ()
看板java
标题Re: [问题] 有没有办法取代或改善List的效率?
时间Tue May 22 19:46:27 2007
※ 引述《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