Java 在返回方法中访问数组
大家晚上好 我有一个方法,它创建、填充并返回一个数组到函数调用,如下所示:Java 在返回方法中访问数组,java,arrays,Java,Arrays,大家晚上好 我有一个方法,它创建、填充并返回一个数组到函数调用,如下所示: public double[] getTotalDistances(){ double[] distance; distance = new double[3]; for(Activity r: diary ){ if(r instanceof Run){ distance[0] += r.getDistance(); } }
public double[] getTotalDistances(){
double[] distance;
distance = new double[3];
for(Activity r: diary ){
if(r instanceof Run){
distance[0] += r.getDistance();
}
}
return distance;
}
我似乎找不到一种方法来访问这个返回的数组,以便在main方法中打印出来,我已经尝试过:(其中m是我实例化的对象)
这将打印出返回的数组,但是,我想知道如何以“经典”的方式进行。我知道这一定是非常新手,但我找不到答案。任何帮助都将不胜感激。在迭代之前使用变量存储它
double[] distance = m.getTotalDistances();
for(int i = 0; i < distance.length; i++){
System.out.println(distance[i]);
}
double[]距离=m.getTotalInstances();
对于(int i=0;i
您的方法将在循环中反复调用getTotalInstances()
方法。你只需要一次就可以使用它
你得到了这个错误
这表示它找不到可变距离
因为变量
distance
仅在方法getTotalInstances()
的范围内已知,因此不能在该范围之外使用它(这也没有意义)。在迭代之前使用变量存储它
double[] distance = m.getTotalDistances();
for(int i = 0; i < distance.length; i++){
System.out.println(distance[i]);
}
double[]距离=m.getTotalInstances();
对于(int i=0;i
您的方法将在循环中反复调用getTotalInstances()
方法。你只需要一次就可以使用它
你得到了这个错误
这表示它找不到可变距离
因为变量
distance
仅在方法getTotalInstances()
的范围内已知,因此您不能在该范围之外使用它(这也没有意义)。它应该是m.getTotalInstances()[i]
而不是m.getTotalInstances().distance[i]
它应该是m.getTotalInstances()[i]
而不是m.getTotalInstances()。距离[i]
按照它的编写方式,distance
没有定义。如果要引用返回值,则需要创建一个指针
double[] distance = getTotalDistances();
for(int i = 0; i < distance.length; i++) {
System.out.println(distance[i]);
}
double[]距离=getTotalInstances();
对于(int i=0;i
另外,在编写时,除第一个值之外的任何值都将始终为0,并且累加器更有意义
另一件需要注意的事情是,在编写时,
getTotalInstances()
将在for
循环的每次迭代中运行两次;一次用于条件,另一次用于println()
。如果要将此概念扩展到更大的用例,性能影响将是巨大的。按照其编写方式,距离没有定义。如果要引用返回值,则需要创建一个指针
double[] distance = getTotalDistances();
for(int i = 0; i < distance.length; i++) {
System.out.println(distance[i]);
}
double[]距离=getTotalInstances();
对于(int i=0;i
另外,在编写时,除第一个值之外的任何值都将始终为0,并且累加器更有意义
另一件需要注意的事情是,在编写时,getTotalInstances()
将在for
循环的每次迭代中运行两次;一次用于条件,另一次用于println()
。如果将此概念扩展到更大的用例,性能影响将是巨大的。哦,我明白了,谢谢,这很有吸引力,似乎有最短的时间来接受答案,因此我将在8分钟内接受答案。这将计算getTotalInstances()
每次都在循环中,容易出现并发问题。哦,我明白了,谢谢,这很有魅力,似乎有最短的时间来接受答案,所以我会在8分钟内接受答案。这将计算getTotalInstances()
每次都在循环中,容易出现并发问题。