Java has many built-in functions to perform different operations on collections or other data types, and one of them is shuffle. Shuffle function is available in many other languages like Python.
Start Your Free Software Development Course
Web development, programming languages, Software testing & others
Declaration for shuffle method:
public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random random)
Parameters:
Returns:
In the example below, we created a list from an array with some alphabets and used the shuffle method to shuffle the array. Every time you run, you would get a different shuffled list.
Code:
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); } }
Output:
In the example below, we create a linked list of integers and add some integers to it. But here we passed another argument that is the Random function which will become the source of Randomness. Then we passed the Random function with seed value 5. This is another flavor, or we can say the method of using shuffle function with Randomness.
Code:
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); } }
Output:
If you want more control over shuffle, then you could write your own method to shuffle the list with the random method and another approach to shuffle the list. This method is more flexible and easy to fit in any application. You can actually understand how shuffle works inside Java’s built-in method.
Input: An int array
Output: Shuffled array(in a randomized order)
Example:
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; }
The above function where you just need to pass an array integer, and it will return a shuffled array. Inside the function, you can see we are iterating the array till its length and generating a random number, and it will be treated as an array index, which will be swapped with another array. This is how the elements will be swapped inside an array. The resulting array will be a swapped one.
From the above function, we can get a basic concept of the shuffle function where a list of values will be sent, and a random number will be generated each time while iterating the elements in the array. The element will be swapped with another element in the same list with the index randomly generated from a random function.
Exceptions:
There could be many situations where the shuffle function below is some applications:
In the above article, we understood how shuffle works and how you can use it. There can be multiple use cases somewhere you would be using shuffle function with random parameter else without random parameter, and some applications might need a different flexible implementation where you can write your own shuffle function using Java’s Random function.
The above is the detailed content of Shuffle() in Java. For more information, please follow other related articles on the PHP Chinese website!