我无法理解以下代码执行的操作。
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)的作用。非常感谢您提供任何可能的帮助。
答案 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)
和3
是Bucket
构造函数所采用的参数。
答案 2 :(得分:0)
从我所看到的,buckets是Bucket类型的未初始化数组。在Java中,对象数组是未初始化的(它们的元素设置为null)。所以当你说Bucket [] buckets = new Bucket [10]时,buckets数组将包含10个null值。
createBuckets的目的是实际创建存储桶,以便降压