Re: [問題] 有沒有辦法取代或改善List的效率?
看到原PO的程式碼,不曉得亂數範圍是否需落在0~nodeNumber裡面。
所以就插一腳寫了個亂數有落在範圍內,且不重複的版本。
我也捨棄了originalRandomArray,有寫錯不要鞭我...囧
private List<Integer> randomArray;
private void GenerateRandomArray(int node , double chance)
{
final int size = (int)(node * chance);
Random random = new Random();
HashSet<Integer> set = new HashSet<Integer>(size , 1.0f);
while(set.size() < size)
for(int i = size - set.size() ; i >= 0 ; --i)
set.add(random.nextInt(node));
randomArray = new ArrayList<Integer>(set);
Collections.shuffle(randomArray);
}
node = 1,000,000
chance = 0.99
time = 10,250 ms
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.229.166.204
討論串 (同標題文章)
完整討論串 (本文為第 12 之 12 篇):