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()
每次都在循环中,容易出现并发问题。