Skip to content

Yet another programming solutions log

Sample bits from programming for the future generations.

Technologies Technologies
  • Algorithms and Data Structures
  • Java Tutorials
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Spock Framework Tutorial
  • Spring Framework
  • Bash Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Developer’s Tools
  • Productivity
  • About
Expand Search Form

Java randomly shuffle

farenda 2015-08-07 0

Problem:

How in Java randomly shuffle an array or List? This common problem can be solved with Java Collections Framework as in the following example.

Solution:

In java.util.Collections class there are two methods to do shuffling:

  1. Collections.shuffle(List) – uses new Random() as randomness source
  2. Collections.shuffle(List, Random) – for custom Random source

Both shuffle a List as can be seen in the following Java example:

package com.farenda.java;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class CollectionsShuffle {

    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        System.out.println("Numbers: " + numbers);

        Collections.shuffle(numbers);
        System.out.println("Shuffled: " + numbers);

        Collections.shuffle(numbers);
        System.out.println("Shuffled again: " + numbers);

        Collections.shuffle(numbers, new Random());
        System.out.println("Shuffled with Random: " + numbers);
    }
}

To shuffle an array use Arrays.asList() to use it as an ArrayList and the use Collections.shuffle(List) as in the example. Pretty simple, no? :-)

Every invocation of the method does shuffling as can be seen in the following output:

Numbers: [1, 2, 3, 4, 5]
Shuffled: [1, 3, 4, 5, 2]
Shuffled again: [2, 1, 3, 5, 4]
Shuffled with Random: [1, 2, 4, 3, 5]
Share with the World!
Categories Java Tags java-collections
Previous: Java rotate List
Next: Java singleton List

Recent Posts

  • Java 8 Date Time concepts
  • Maven dependency to local JAR
  • Caesar cipher in Java
  • Java casting trick
  • Java 8 flatMap practical example
  • Linked List – remove element
  • Linked List – insert element at position
  • Linked List add element at the end
  • Create Java Streams
  • Floyd Cycle detection in Java

Pages

  • About Farenda
  • Algorithms and Data Structures
  • Bash Tutorial
  • Bean Validation Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Java 8 Streams and Lambda Expressions Tutorial
  • Java Basics Tutorial
  • Java Collections Tutorial
  • Java Concurrency Tutorial
  • Java IO Tutorial
  • Java Tutorials
  • Java Util Tutorial
  • Java XML Tutorial
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Software Developer’s Tools
  • Spock Framework Tutorial
  • Spring Framework

Tags

algorithms bash bean-validation books clojure design-patterns embedmongo exercises git gof gradle groovy hateoas hsqldb i18n java java-basics java-collections java-concurrency java-io java-lang java-time java-util java-xml java8 java8-files junit linux lists log4j logging maven mongodb performance quartz refactoring regex rest slf4j solid spring spring-boot spring-core sql unit-tests

Yet another programming solutions log © 2022

sponsored