我有位(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
,尽管向量存在于列表中并且条件已经过验证。
答案 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");
}