0

randomNumbers の値を配列のセットに変換して、後で並べ替えに使用できるようにするにはどうすればよいですか?

これが私のメインクラスです

import java.util.Arrays;
import java.util.*;

public class Main {
  public static void main(String[] args){
    int choice;
    int g;
    Scanner input=new Scanner(System.in);
    System.out.println("Enter how many random no:");
    g=input.nextInt();

    RandomAlgo ran=new RandomAlgo();
    g=ran.randomNum(g);

    RandomAlgo rand=new RandomAlgo();
    int[] data=rand.randomNum(randomNumbers); //did i did this right here? 

  System.out.println("Choose Sorting algorithm: \n (1)Selection Sort \n (2)Insertion Sort \n (3)Bubble Sort \n (4)Quick Sort" );
    choice=input.nextInt();

    switch(choice){
      case 1:{
        SortingAlgo algo=new SortingAlgo();
        data=algo.selectionSort(data);
        break;
      }

私の乱数クラスの場合、ここに私のコードがあります。私の問題は、値をrandomNumbersメインクラスに渡す方法です。

public class RandomAlgo extends Main{


  public int randomNum(int g){
        Random rand = new Random();
        int e;
        int i;       
        HashSet<Integer> randomNumbers = new HashSet<Integer>();

        for (i = 0; i < g; i++) {
            e = rand.nextInt(1000);
            randomNumbers.add(e);
            if (randomNumbers.size() <= 0) {
                if (randomNumbers.size() == 0) {
                    g = g;
                }
                g++;
                randomNumbers.add(e);
            }
        }
        System.out.println("Random numbers Are  : " +randomNumbers);
        return g;
    }

  }
4

2 に答える 2

2

int[] data=rand.randomNum(randomNumbers); //私はここでこれをしましたか?

randomNumbersは subclass のローカル変数ですがRandomAlgo.randomNum()Mainそれについてはわかりません。

次のように記述できますRandomAlgo

public class RandomAlgo { // Why extend Main ???


  public int[] randomNum(int g){ // return an int array with random numbers instead
        Random rand = new Random();

        int[] randomNumbers = new int[g];

        for (int i = 0; i < g; i++) {
            int e = rand.nextInt(1000);
            randomNumbers[i] = e;

           // if (randomNumbers.size() <= 0) {
             //   if (randomNumbers.size() == 0) {
               //     g = g;
               // }
               // g++;
               // randomNumbers.add(e);
           // }
        }
        // System.out.println("Random numbers Are  : " +randomNumbers);
        return randomNumbers;
    }

  }

Mainそれに応じて変更する必要があります。

public class Main {
  public static void main(String[] args){
    int choice;
    int g;

    Scanner input=new Scanner(System.in);
    System.out.println("Enter how many random no:");
    g=input.nextInt();

    // RandomAlgo ran=new RandomAlgo();
    // g=ran.randomNum(g);

    RandomAlgo rand=new RandomAlgo();
    int[] data=rand.randomNum(g); // load return random numbers array to data

  System.out.println("Choose Sorting algorithm: \n (1)Selection Sort \n (2)Insertion Sort \n (3)Bubble Sort \n (4)Quick Sort" );
    choice=input.nextInt();
于 2013-10-03T01:43:06.033 に答える