我应该有2个构造函数,第一个构造函数询问n<=0
是否将n更改为1并初始化Bvector
对象以表示具有n个元素的布尔向量,所有这些都设置为是的。(所有在第一个构造函数中)。如何使用getsize
方法返回大小?
public class BVector{
private int size;
private boolean[] bVectorData;
public BVector( int n ) {
if (n<=0){
n=1;
}
Boolean[] bVectorDara= new Boolean[n];
Arrays.fill(bVectorData, Boolean.true);
}
public BVector( boolean[] data ) {
size = data.length;
bVectorData = new boolean[size];
//here copy the elements from array data to array bVectorData
for(int i=0; i<size; i++ ){
bVectorData[i] = data[i];
}
}
public int getSize() {
/* returns the size of the boolean vector */
}
答案 0 :(得分:3)
Java中的所有数组都有一个length
字段,包含它们的大小。 Yoy应该从你的getSize()
方法返回。你不知道这是非常令人惊讶的,因为你已经在第二个构造函数中使用了这个长度字段。
现在为您的第一个构造函数。它不初始化基本类型bVectorData
的实例变量boolean[]
。它创建了bVectorDara
类型的局部变量java.lang.Boolean[]
。你在第二个构造函数中做到了,所以在第一个构造函数中也是如此:
bVectorData = new boolean[n];
或者,更清楚:
this.bVectorData = new boolean[n];
最后,您需要使用true
填充,而不是Boolean.true
填充,这甚至不存在。