如何理解二维数组方法

时间:2015-01-19 14:54:34

标签: java

我无法理解以下代码执行的操作。

public void createBuckets(int numOfBuckets){

    for(int i=0; i < numOfBuckets; i++){
      buckets[i] = new Bucket("Bucket" + (i + 1), 3);}
}

据我所知,“buckets”是一个本身应该包含数组的数组。 但我无法理解“新”在这种情况下的含义,以及括号中的所有内容(“Bucket”+(i + 1),3)的作用。非常感谢您提供任何可能的帮助。

3 个答案:

答案 0 :(得分:2)

根据您的代码,buckets不是2D数组(假设您的代码编译)。它是一个包含对Bucket个对象的引用的一维数组。

buckets[i] = new Bucket("Bucket" + (i + 1), 3);

将新的Bucket对象分配给数组的i索引。

Bucket有一个接受String和int的构造函数。你的循环相当于:

buckets[0] = new Bucket("Bucket1",3);
buckets[1] = new Bucket("Bucket2",3);
buckets[2] = new Bucket("Bucket3",3);
...
buckets[numOfBuckets-1] = new Bucket("Bucket"+numOfBuckets,3);

答案 1 :(得分:1)

new创建Bucket实例并将其添加到Bucket实例数组中。

"Bucket" + (i + 1)3Bucket构造函数所采用的参数。

答案 2 :(得分:0)

从我所看到的,buckets是Bucket类型的未初始化数组。在Java中,对象数组是未初始化的(它们的元素设置为null)。所以当你说Bucket [] buckets = new Bucket [10]时,buckets数组将包含10个null值。

createBuckets的目的是实际创建存储桶,以便降压