2つのクラスを使用するときに、なぜ配列は、間違った値を与えていますか?

レイ:

私はここで、このコードを持っています。

public class ArrayChallenge {

private static Scanner kb = new Scanner(System.in);

public static void main(String[] args) {
    System.out.print("Number of integers: ");
    int num = kb.nextInt();

    int [] returnedArray = readIntegers(num);
    System.out.println("Ascending Order: " + printAsc(returnedArray));
}

public static int [] readIntegers(int count){
    int [] values = new int[count];
    for(int i=0; i<count; i++){
        System.out.print("Enter number: ");
        values[i] = kb.nextInt();
    }
    return values;
}

public static int [] printAsc(int [] theArray){
    Arrays.sort(theArray);
    return  theArray;
}

完全に罰金作品上記のコード。私は一つのクラスが、いくつかの静的メソッドのみを持ち、メソッドの呼び出し時にprintAsc(returnedArray) プログラムは、ちょうど使用してのような形式で配列のセットを返します.toStringを

私は2つのクラスを使用して、インスタンスメソッドに静的メソッドを作る次のレベルにこのコードを取りました。しかし、私は配列を印刷するとき。それは、これらの値を出力します[I @ 643b1d11

ここでは以下の私のコードは次のとおりです。

メインクラス

public class Main {

public static Scanner kb = new Scanner(System.in);

public static void main(String[] args) {
    System.out.print("Enter the number of elements: ");
    int num = kb.nextInt();

    int numArrays []  = new int[num];

    Minimum minimum = new Minimum();
    int [] returnedArrays = minimum.readIntegers(numArrays);
    int returnedMin = minimum.findMin(returnedArrays);

    System.out.println("Minimum Value: " + returnedMin);
    System.out.println("Ascending Arrays: " + minimum.arrayAsc(returnedArrays));
}

}

最小クラス

public class Minimum {

public int [] readIntegers(int [] numArrays){
    System.out.println("Enter " + numArrays.length + " integers:");
    for(int i=0; i< numArrays.length; i++){
        numArrays[i]=Main.kb.nextInt();
    }
    return numArrays;
}

public int findMin(int [] numArrays){
    int max = Integer.MAX_VALUE;
    for(int i=0;i<numArrays.length;i++){
        if(max>numArrays[i]){
            max = numArrays[i];
        }
    }
    return max;
}

public int [] arrayAsc(int [] numArrays){
    Arrays.sort(numArrays);
    return numArrays;
}

}

どのように私の配列の結果はそのようになったのですか?誰かが私にプロセスを説明できますか?多くの感謝。イムのIntelliJを使用しているためまた、私はデバッグの方法を使用し、それは本当に何も表示さdidntの。

アービンド・クマールのAvinash:

使用している方法はprintAsc、あなたが文字列を返すために、その定義を変更する必要があります。

public static String printAsc(int [] theArray){
    Arrays.sort(theArray);
    return  Arrays.toString(theArray);
}

あなたがの定義を変更したくない場合printAsc、あなたは次のようにそれを呼び出す必要があります。

System.out.println("Ascending Order: " + Arrays.toString(printAsc(returnedArray)));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=349605&siteId=1