我正在尝试遍历三个列表(长度均相同),获取指定索引处的值,并将其与主列表进行比较。对于主列表中尚未包含的值,请附加新值。
但是,我的布尔值和语句永远不会通过。
FloatList master_X = new FloatList();
FloatList master_Y = new FloatList();
FloatList master_Z = new FloatList();
FloatList t_x = new FloatList();
FloatList t_y = new FloatList();
FloatList t_z = new FloatList();
FloatList checkedX = new FloatList();
FloatList checkedY = new FloatList();
FloatList checkedZ = new FloatList();
void tempToMaster(){
for(int i = 0; i < t_x.size();i++){
float x_t = (float)t_x.get(i);
float y_t = (float)t_y.get(i);
float z_t = (float)t_z.get(i);
for(int j = 0; j < master_X.size();j++){
float x_s = (float)master_X.get(j);
float y_s = (float)master_Y.get(j);
float z_s = (float)master_Z.get(j);
if ((x_t != x_s)&&(y_t != y_s)&&(z_t != z_s)){
print("helloWorld");
checkedX.append(x_t);
checkedY.append(y_t);
checkedZ.append(z_t);
}
}
}
for(int i = 0; i < checkedX.size();i++){
master_X.append(checkedX.get(i));
master_Y.append(checkedY.get(i));
master_Z.append(checkedZ.get(i));
}
checkedX.clear();
checkedY.clear();
checkedZ.clear();
t_x.clear();
t_y.clear();
t_z.clear();
}
应打印“ Hello World”,并将临时ArrayList中的值附加到“选中的” ArrayList中。
布尔运算永远不会起作用。
答案 0 :(得分:0)
我检查了代码,它可以工作,但是您必须确保列表不为空。 这是因为,当masterX为空时,masterX.size()为0。
因此,for循环甚至都没有启动,因为0不小于0,并且没有任何内容添加到检查列表中。
此代码:
master_X.append(0);
master_Y.append(0);
master_Z.append(0);
t_x.append(1);
t_y.append(1);
t_z.append(1);
tempToMaster();
达到预期的结果。
如果您希望它与空的主列表一起使用,首先应将所有临时列表添加到已检查列表中,然后删除主列表中的所有浮点数。
编辑:您可能还想查看hasValue(),以检查列表中是否包含特定的浮动。