programing

Array List를 셔플하는 방법

sourcetip 2023. 1. 30. 22:57
반응형

Array List를 셔플하는 방법

Array List를 셔플하는 메서드 작성에 도움이 필요합니다.나는 내 방법에 무엇을 배치해야 할지 모르겠다.지금까지 제가 가지고 있는 것은 이것입니다.리스트의 정수를 랜덤화하려고 랜덤 방법을 사용했지만 효과가 없었습니다.누가 어떻게 하는지 보여줄 수 있어요?

제가 시도한 코드는 다음과 같습니다.

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

이 방법을 사용하여 매개 변수에서 배열 전달

Collections.shuffle(arrayList);

이 메서드는 새 목록을 제공하지 않도록 void를 반환하지만 Java에서는 어레이가 참조 유형으로 전달되므로 어레이를 셔플하고 쉐이핑된 값을 저장합니다.그렇기 때문에 반품 타입은 필요 없습니다.

이제 셰이핑된 배열 목록을 사용할 수 있습니다.

컬렉션을 사용해 보십시오.셔플(목록문제를 해결하기 위해 이 방법을 사용할 수 없는 경우 실제 구현을 살펴볼 수 있습니다.

언급URL : https://stackoverflow.com/questions/16112515/how-to-shuffle-an-arraylist

반응형