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