Java 有許多內建函數可以對集合或其他資料類型執行不同的操作,其中之一就是 shuffle。 Shuffle 函數在 Python 等許多其他語言中都可使用。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
隨機播放方法宣告:
public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random random)
參數:
回傳:
在下面的範例中,我們從包含一些字母的陣列中建立了一個列表,並使用 shuffle 方法對陣列進行洗牌。每次運行時,您都會得到不同的隨機清單。
代碼:
import java.util.*; public class CollectionsShuffleExampleWithoutRandom { public static void main(String[] args) { List<String> list = Arrays.asList("R", "A", "H", "U", "L"); System.out.println("Before Shuffle : "+list); Collections.shuffle(list); System.out.println("After shuffle : "+list); } }
輸出:
在下面的範例中,我們建立一個整數連結列表並向其中添加一些整數。但這裡我們傳遞了另一個參數,即隨機函數,它將成為隨機性的來源。然後我們傳遞了種子值為5的Random函數。這是另一種風味,或者我們可以說是使用帶有Randomness的shuffle函數的方法。
代碼:
import java.util.*; public class CollectionsShuffleWithRandom { public static void main(String[] args) { //Create linked list object LinkedList<Integer> list = new LinkedList<Integer>(); //Add values list.add(90); list.add(100); list.add(1); list.add(10); list.add(20); System.out.println("Before Shuffle = "+list); //Random() to shuffle the given list. Collections.shuffle(list, new Random()); System.out.println("Shuffled with Random() = "+list); //Random(5) to shuffle the given list. Collections.shuffle(list, new Random(5)); System.out.println("Shuffled with Random(5) = "+list); } }
輸出:
如果您想要更多地控制隨機播放,那麼您可以編寫自己的方法來使用 random 方法和另一種隨機方法來隨機播放清單。這種方法更加靈活且易於適應任何應用。您可以實際了解 Java 內建方法中的 shuffle 是如何運作的。
輸入: 一個 int 陣列
輸出: 打亂數組(以隨機順序)
範例:
public static int[] ShuffleArray(int[] array){ Random rand = new Random(); // Random value generator for (int i=0; i<array.length; i++) { int randomIndex = rand.nextInt(array.length); int temp = array[i]; array[i] = array[randomIndex]; array[randomIndex] = temp; } return array; }
上面的函數只需要傳遞一個陣列整數,它就會傳回一個打亂後的陣列。在函數內部,您可以看到我們正在迭代數組直到其長度並產生一個隨機數,它將被視為數組索引,它將與另一個數組交換。這就是數組內元素交換的方式。產生的數組將是交換後的數組。
從上面的函數中,我們可以得到 shuffle 函數的基本概念,其中將發送一個值列表,並且每次迭代數組中的元素時都會產生一個隨機數。該元素將與同一列表中的另一個元素交換,索引是從隨機函數隨機產生的。
例外:
在許多情況下,下面的隨機播放功能可能是一些應用:
在上面的文章中,我們了解了 shuffle 的工作原理以及如何使用它。可能有多個用例,您可以使用帶有隨機參數的shuffle 函數,或者不使用隨機參數的shuffle 函數,並且某些應用程式可能需要不同的靈活實現,您可以使用Java 的Random 函數編寫自己的shuffle 函數。
以上是Java 中的 Shuffle()的詳細內容。更多資訊請關注PHP中文網其他相關文章!