【发布时间】:2014-12-09 16:22:07
【问题描述】:
这段代码有这个问题。
data 是一个 observableArrayList 并保存一个名为 table 的双精度字符串数组。 tempTable 是另一个双精度字符串数组,其格式与数据中的表相同。 我仅在数据中没有与我要添加的表相等的表时才尝试将 tempTable 添加到数据中,但由于某种原因,它只会在数据不为空时添加,并且在添加时添加两者(如果存在)是现有表,或者数据中不存在现有表。
运行此程序没有任何错误。
编辑我使代码更易于阅读
for (int i = 0; i < s.length; i++) {
int p = data.size();
Table tempTable = new Table(Integer.parseInt(s[i][0]), s[i][1], s[i][2], s[i][3], s[i][4], s[i][5], s[i][6], s[i][7], s[i][8], s[i][9], s[i][10], s[i][11], s[i][12], s[i][13], s[i][14], s[i][15], s[i][16]);
for (int j = 0; j < p; j++){
if (!data.get(j).equals(tempTable)){
data.add(tempTable);
break;
}
}
}
【问题讨论】:
-
两件事:没有缩进,缺少括号
-
您是否为您的
Table班级定义了equals?无论您在其中存储什么数据,Java 只会在您执行此类操作时查看equals。 -
假设
data包含1、10、2,tempTable包含1、20、10。结果应该是什么?
标签: java loops arraylist equals