Java 为什么数组在使用两个类时给出了错误的值?

Java 为什么数组在使用两个类时给出了错误的值?,java,arrays,sorting,Java,Arrays,Sorting,我这里有这个密码 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(n

我这里有这个密码

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

最低等级

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;
}
公共类最小值{
公共整数[]读取整数(整数[]numarays){
System.out.println(“输入”+numarays.length+“整数:”);
对于(int i=0;i
}

我的数组结果是如何变成这样的?有人能给我解释一下这个过程吗?非常感谢。
另外,我使用了调试方法,因为我使用Intellij,它没有真正显示任何内容。

您不能只打印一个数组,然后期望它读取所有值。打印时,Java将值转换为
字符串
。默认情况下,当处理
对象时,Java只需打印
对象的类名称及其哈希值。这就是你看到的。你可以阅读更多关于它的内容


如果要将数组解析为包含数组所有成员的
字符串
,可能需要查看方法(和)。

使用
printAsc
的方式,需要更改其定义以返回字符串

public static String printAsc(int [] theArray){
    Arrays.sort(theArray);
    return  Arrays.toString(theArray);
}
如果不想更改
printAsc
的定义,则需要按如下方式调用它:

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

你写的代码“工作得非常好”不可能工作得很好
printAsc
返回一个数组。数组不能直接打印-必须使用
数组.toString
或循环。也许您运行的是它的旧版本,
printAsc
做了一些其他事情。@realponsignist感谢您指出这一点。这确实是因为旧版本。是的,我可以将其从Arrays.toString转换。但是我想在实例方法中返回一个int数组。是的,我这样做了,但是我想使用数组int作为返回类型,我似乎无法理解。我看到你已经编辑了它。谢谢你的回答。我不知道它能做到这一点。
System.out.println("Ascending Order: " + Arrays.toString(printAsc(returnedArray)));