布尔向量

时间:2013-11-29 14:27:02

标签: java

我应该有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  */        
    }

1 个答案:

答案 0 :(得分:3)

Java中的所有数组都有一个length字段,包含它们的大小。 Yoy应该从你的getSize()方法返回。你不知道这是非常令人惊讶的,因为你已经在第二个构造函数中使用了这个长度字段。

现在为您的第一个构造函数。它不初始化基本类型bVectorData的实例变量boolean[]。它创建了bVectorDara类型的局部变量java.lang.Boolean[]。你在第二个构造函数中做到了,所以在第一个构造函数中也是如此:

bVectorData = new boolean[n];

或者,更清楚:

this.bVectorData = new boolean[n];

最后,您需要使用true填充,而不是Boolean.true填充,这甚至不存在。