我有一個整數數組(例如1,2,3,4,5或1,2,3,... 10或1,2,3,... 50)我希望每次都有不同順序的隨機數字。有沒有實用的方法來做到這一點?在一個子集內隨機化數字
例如對於1,2,3,4,5後隨機,它可能是[1,5,4,2,3或2,1,3,5,4或3,1,2,4,5或... ]
我想知道是否有一個Java實用程序的方法/類已經提供了這種能力?
我有一個整數數組(例如1,2,3,4,5或1,2,3,... 10或1,2,3,... 50)我希望每次都有不同順序的隨機數字。有沒有實用的方法來做到這一點?在一個子集內隨機化數字
例如對於1,2,3,4,5後隨機,它可能是[1,5,4,2,3或2,1,3,5,4或3,1,2,4,5或... ]
我想知道是否有一個Java實用程序的方法/類已經提供了這種能力?
這不會直接幫助數組,但如果將其轉換爲List<Integer>
它將起作用。 (您不能使用Arrays.asList
與int[]
,很可惜。)
或者,你可以實現一個Fisher-Yates Shuffle自己很容易 - 事實上,維基百科頁面,甚至有一種實現在Java中:)(我將其更改爲採取Random
引用作爲參數,但是 - 你不希望創建的Random
一個新實例每次調用時)
看java.util.Collections.shuffle 你的陣列需要有一個總彙。你可以使用java.util.Arrays.asList。
如果您希望在每次最終用完未使用的排列時對其進行排序。然後怎樣呢? – 2010-03-22 13:11:37
只要它的排列順序不同,偶爾得到同樣的訂單對我來說也沒問題。 – Sam 2010-03-22 14:53:38