Home >Java >javaTutorial >Shuffle() in Java
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); } }</string>
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); } }</integer></integer>
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);" temp="array[i];" array return> <p>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.</p> <p>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.</p> <h3>Important Points for Shuffle Function</h3> <ul> <li>This method works on randomly permuting the list elements and shuffling them.</li> <li>Each time executed, the result can be different.</li> <li>The function doesn’t take much time and runs in linear time.</li> <li>If you provide a list that doesn’t implement the RandomAccess interface, then shuffle will first copy the list into an array, shuffle the array copy, and then copies it into a list of the result and return it.</li> <li>Shuffle traverses the list backwards – the last element up to the second element repeatedly.</li> <li>While traversing, it randomly selects elements and swaps them with the current position.</li> <li>The randomly selected element is from the portion of the list from the first element to the current element.</li> </ul> <p><strong>Exceptions:</strong></p> <ul> <li> <strong>UnsupportedOperationException: </strong>if the passed list or list-iterator does not support a set operation.</li> </ul> <h3>Applications of Shuffle</h3> <p>There could be many situations where the shuffle function below is some applications:</p> <ul> <li>Shuffling a list of questions in a QA application.</li> <li>Shuffling list of quotes that you want to show to your app users every day.</li> <li>Lottery application where you want to assign a ticket number to the user.</li> <li>Generating unique transaction numbers for a payment field.</li> <li>Generation unique user id for different users can be prefixed to user id.</li> <li>It can also be used in cryptographic applications.</li> </ul> <h3>Conclusion</h3> <p>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.</p></array.length>
The above is the detailed content of Shuffle() in Java. For more information, please follow other related articles on the PHP Chinese website!