如何检查java中向量列表中是否存在特定向量?

时间:2017-04-22 08:24:01

标签: java

我有位(0和1)的向量列表,我想检查该列表中是否存在特定的位向量。我使用了这段代码,但答案不正确。

if(bitset2.contains(bi))
    System.out.println("data found in file");         
else
    System.out.println("data not found in files ");

bitset2表示位向量列表,bi是位向量。

此代码始终打印data not found in files,尽管向量存在于列表中并且条件已经过验证。

1 个答案:

答案 0 :(得分:0)

您已循环抛出列表并使用.equals检查您的列表中是否存在Vector,例如:

public static void main(String[] args) {
    Vector vec1 = new Vector(3);
    vec1.add(0, 0);
    vec1.add(1, 1);
    vec1.add(2, 0);
    Vector vec2 = new Vector(3);
    vec2.add(0, 0);
    vec2.add(1, 1);
    vec2.add(2, 0);

    //create a List of Vectors
    List<Vector> bitset2 = new ArrayList<>();
    bitset2.add(vec2);

    boolean exist = false;
    //Loop throw your List and check if your vector exist or no
    for (Vector vector : bitset2) {
        if (vector.equals(vec1)) {
            exist = true;
            break;
        }
    }

    System.out.println(exist ? "data found in file" : "data not found in file");
}