如何遍历对象的ArrayList?

sud*_*cat 5 java arraylist

我有一个名为SparseMatrix的类.它包含节点的ArrayList(也是类).我想知道如何遍历数组并访问Node中的值.我尝试过以下方法:

 //Assume that the member variables in SparseMatrix and Node are fully defined.
 class SparseMatrix {
     ArrayList filled_data_ = new ArrayList();
     //Constructor, setter (both work)

     // The problem is that I seem to not be allowed to use the operator[] on
     // this type of array.
     int get (int row, int column) {
         for (int i = 0; i < filled_data_.size(); i++){
             if (row * max_row + column == filled_data[i].getLocation()) {
                 return filled_data[i].getSize();
             }
         }
         return defualt_value_;
     }
 }
Run Code Online (Sandbox Code Playgroud)

我可能会切换到静态数组(并在每次添加对象时重新创建它).如果有人有解决方案,我非常感谢您与我分享.另外,谢谢你提前帮助我.

如果您对此无法理解,请随时提出问题.

nho*_*er9 2

首先,您不应该使用原始类型。有关更多信息,请参阅此链接:什么是原始类型以及为什么我们不应该使用它?

解决方法是声明数组列表所保存的对象的类型。将声明更改为:

 ArrayList<Node> filled_data_ = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

filled_data_.get(i)然后,您可以使用(而不是filled_data_[i]适用于常规数组的 )访问数组列表中的每个元素。

`filled_data_.get(i)`
Run Code Online (Sandbox Code Playgroud)

上面将返回索引处的元素i。此处的文档: https: //docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#get(int)