我被困在一个Java编码任务中。我应该为现有程序创建三种方法(askInfo
,copyInfo
,和setArray
),让用户将数字输入数组,然后组织并打印该数组AskInfo
接收数组作为参数,向用户请求索引值,并将输入的数字量返回为int。CopyInfo
将值复制到一个新数组中,该数组的长度为返回的数字量,setArray
对数字进行排序。
我的问题是,根据作业,askInfo
应该只返回输入的数字量。因此,它将打印的数组值留在方法内部,使得copyInfo
无法检索这些值并将其复制到第二个数组中。如果没有编辑主方法的能力,您建议我如何克服这个问题?
主要方法:
int[] tempArray = new int[100];
System.out.println("Type in numbers. Type zero to quit.");
int amountOfNumbers = askInfo(tempArray);
int[] realArray = new int[amountOfNumbers];
copyInfo(realArray, tempArray);
setArray(realArray);
printArray(realArray);
我的代码:
public static int askInfo (int[] tempArray) { //asks for numbers and assigns them to tempArray, returns the length of realArray
int count = 0;
Scanner reader = new Scanner(System.in);
for (int i =0;i<tempArray.length;i++){
System.out.print((i+1)+". number: ");
tempArray[i] = reader.nextInt();
count++;
if (tempArray[i] == 0) //stops asking for values if user inputs 0
return count;
}
return count;
}
public static int[] copyInfo (int[] realArray, int[] tempArray) { //copies tempArray's values to realArray
for (int i=0; i<realArray.length;i++){
realArray[i] = tempArray[i];
}
return realArray;
}
public static int[] setArray (int[] realArray) { //sorts realArray from largest value to smallest
for (int i=0;i<realArray.length;i++){
for (int j=i+1;j<realArray.length;j++){
if (realArray[i]<realArray[j]){
int tmp = realArray[i];
realArray[i] = realArray[j];
realArray[j] = tmp;
}
}
}
return realArray;
}
现在程序确实编译了,但是数组realArray
和temArray
的值在askInfo
方法之外是空的。请记住,我不能编辑主方法——我只能编辑我写的三个方法。
在Java中,数组变量是对数组对象的引用。这意味着当您分配tempArray[i]=reader时。nextInt()
在askInfo()
中,它修改main()
中名为tempArray
的数组的内容。有关更多信息,请阅读Java?中按值传递或按引用传递的数组?。
是我还是你错过了printArray方法?除此之外,代码看起来不错。数组是一种引用类型,因此所有方法都可以访问同一个TempArray,即使其中的值是在一个方法中添加的
你写的代码本身是正确的。你不需要任何修改<你说
数组realArray
和tempArray
的值超出askInfo方法的范围是null
那句话根本不是真的
在askInfo
中,int[]tempArray
数组实际上正在被更改
和int[]realArray
正在有效填充。
我建议你Rest一下,以一种全新的思维回到这个练习上来。
问题内容: 关于将行旋转为各种数据库的列,有很多文章。他们似乎分为两个阵营,使用案例陈述或使用数据库供应商的内置功能。我正在使用 MySQL ,到目前为止,在任何内置函数上都找不到任何东西,这将使我能够选择任意数量的行值(我想将其转换为列)。如果我不提前知道这些值,则无法构建经常出现在的CASE查询。我想知道在MySQL中是否有类似于其他数据库中称为交叉表或数据透视表的东西: -Postgresq
我真的想知道是否有一种方法可以只从该方法获得另一个方法的值。因为在main方法中,第一个方法已经被调用,而第二个方法需要第一个方法输入的值。 静态int first_Method(int num){ //第二种方法 静态void second_method(){
我试图模拟一个方法,从另一个方法调用,而不使用类对象。在指定的代码中,我想模拟methodA(),它调用methodB(),而不使用对象。 我无法更改现有类中的任何内容。 我已经尝试过: 莫基托。doReturn(“id”)。当(反对)。方法b(员工)
问题内容: 我想从一个类到另一个类调用一个方法,不知道在不扩展包含该方法的类的情况下是否可行。我尝试导入包,那样我认为应该允许使用该方法,因为它是一个公共方法,但是并不成功。 试图使用此链接作为参考,但我不理解(因为它是android的应用。) 伪代码举例说明 问题答案: 其他方法可能是,为其他类创建对象,然后在该对象上调用方法。像下面这样。
我有一个主键,当我尝试插入一些数据时,它生成了自己,但问题是它将生成我之前删除的最后一个 我想在输入新数据时输入生成的id将是17而不是72,依此类推,我使用的是SQL Server2008,帮助:{
我想在我的spring web应用程序中添加几个过滤器,但至少现在不会有任何关于安全性的内容。所以。没有spring-security我所能做的就是在web.xml中定义多个过滤器(定义过滤器的旧方法)。要能够使用spring过滤器链,我需要为我的项目添加spring-security作为依赖项,这似乎很奇怪。也许我做错了什么,而且确实有过滤器链可以在没有spring-security依赖的情况下