How to shuffle an ArrayList

JavaListCollections

Java Problem Overview


I need some help in writing a method that will shuffle the ArrayList. I can't figure out what to place in my method. Here is what I have so far. I tried using the random method to randomize the integers in the list but that didn't work. Can someone show me how to do this?

Here is the code I've tried:

import java.util.ArrayList;
import java.util.Scanner;

public class Lab 11 {
  public static void main(String[] args) {
    ArrayList<Double> list = new ArrayList<Double>();

    Scanner input = new Scanner(System.in);   
    System.out.print("Enter integers (input ends with 0): ");
	 double value;
    
    do {
      value = input.nextDouble(); // Read a value from the input
      
      if (value != 0) 
        list.add(value); // Add the value if it is not in the list
    } while (value != 0);
	 System.out.println("The maximum number is " + max(list));
	 
	 System.out.print("Enter five double values: ");
	 for (int i = 0; i < 5; i++)
      list.add(input.nextDouble());

    System.out.println("The sum is " + sum(list));
	 
  }
  
  public static Double max(ArrayList<Double> list) {
    if (list == null || list.size() == 0)
      return null;
    
    double result = list.get(0);
    for (int i = 1; i < list.size(); i++)
      if (result < list.get(i))
        result = list.get(i);
    
    return result;
  }
  
  public static double sum(ArrayList<Double> list) {
    double sum = 0;
    for (int i = 0; i < list.size(); i++)
      sum += list.get(i);
    return sum;
  }
}

Java Solutions


Solution 1 - Java

Use this method and pass your array in parameter

Collections.shuffle(arrayList);

This method return void so it will not give you a new list but as we know that array is passed as a reference type in Java so it will shuffle your array and save shuffled values in it. That's why you don't need any return type.

You can now use arraylist which is shuffled.

Solution 2 - Java

Try Collections.shuffle(list).If usage of this method is barred for solving the problem, then one can look at the actual implementation.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2264733View Question on Stackoverflow
Solution 1 - Java3urdochView Answer on Stackoverflow
Solution 2 - JavaAllTooSirView Answer on Stackoverflow