96

ArrayList をシャッフルするメソッドを作成する際に助けが必要です。メソッドに何を配置すればよいかわかりません。これが私がこれまでに持っているものです。random メソッドを使用してリスト内の整数をランダム化しようとしましたが、うまくいきませんでした。誰かがこれを行う方法を教えてもらえますか?

これが私が試したコードです:

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;
  }
}
4

2 に答える 2

234

このメソッドを使用して、配列をパラメーターに渡します

Collections.shuffle(arrayList);

このメソッドは void を返すため、新しいリストは提供されませんが、Java では配列が参照型として渡されることがわかっているため、配列がシャッフルされ、シャッフルされた値が保存されます。そのため、戻り値の型は必要ありません。

シャッフルされた arraylist を使用できるようになりました。

于 2013-04-19T19:53:00.760 に答える
33

Collections.shuffle(list)を試してください。問題を解決するためにこのメソッドの使用が禁止されている場合は、実際の実装を確認できます。

于 2013-04-19T19:55:28.703 に答える