Java:从 ArrayList 引用数组作为方法输入

标签 java arrays methods input arraylist

我在使用下面的 Java 时遇到问题。 data_array 是数组的 ArrayList。我试图使用“for”循环访问 ArrayList 中的所有数组,但由于某种原因我无法在 ArrayList 上执行 .get 。任何帮助将非常感激!谢谢!

public static double calc_SMA (Collection<Double> data_array, int bar_avg, int array_position){

      //Create array to select which array in the ArrayList to pull from
      double [] holding = new double [4];

      //variable to hold the sum of the bars
      double sum = 0.0;

      //Create loop to pull data via...put into avg_calc
      for (int i = 0; i < bar_avg; i++) {

        //Cycle through arrays within the data_array ArrayList starting from first row to bar_avg - 1
        holding = data_array.get(i);

        //Add value to the previous value with 'sum'
        //array_position is the place (0-3) that we are calculating avg of 
        sum = sum + holding[array_position];

        //clear holding array
        holding = null;
      }

      double average = sum/bar_avg;
      return average;
  }

最佳答案

(至少)有几个问题导致它无法编译。

第一个在那里 is no Collection.get method 。而不是采取 Collection<Double> ,取a List<Double> 相反(ArrayList 符合 List)。

解决后,下一个问题是 List<Double>.get(int) => Double ,但是holdingdouble[]因此该分配无效。


循环i in [0, avg_bar)也很可疑但使用data_array.get(i) ;这是无效索引的秘诀。虽然这可以通过删除 get(i) 来解决并循环迭代器..

无论如何,我怀疑一个大问题是计算SMA的算法不正确。 。考虑删除 holding[]数组变量并直接使用每个 data_array 值(P_n、P_n-1 等)来计算总和。

关于Java:从 ArrayList 引用数组作为方法输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798003/

相关文章:

java - 如何在 Android 中使用计时器?

java - 为什么我的数组包含所有空值?

arrays - Powershell:将一个数组添加为另一个数组的成员

java - 用下一个空白空间填充数组?

java - 在使用 logger.debug() 之前是否需要 Log4j isDebugEnabled()?

java - 在 Hibernate Search 中运行时选择分析器

php - 在 PHP 中从 MySQL 返回 blob 数据并转换为 base64_encode 以添加到数组

android - 在android按钮上调用方法点击

Python在方法内使用tkinter显示变量

java - 如何获取 Android/Java 中调试输出的方法名称?