所以,我有一个类Model01:
public class Model01 {
private String color;
private String name;
private String bl;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getName() {
return name;
}
public void setName(String color) {
this.name = name;
}
public String getBl() {
return bl;
}
public void setBl(String color) {
this.bl = bl;
}
在我的代码中的某一点,我想将我从数据库收到的一些数据映射到这个模型类,如下所示:
List<Model01> resultEntries = new ArrayList<Model01>();
for(Object[] i : res){ // res is the result of my query
Model01 m = new Model01();
m.setColor((String) item[0]);
m.setName((String) item[1]);
m.setBl((String) item[2]);
resultEntries.add(m)
}
稍后在我的代码中,我想迭代我的resultEntries数组,其中包含许多对象,我想比较我的对象之间的一些字段。我已经完成了类似的事情,但它似乎只是迭代我的最后一个对象。我做错了什么?
for(Model01 i : resultEntries){
if (i.getName.equals(i.getBl))
...
System.out.println(...);
}
编辑:我总是实例化一个新的Model01对象,这些代码片段实际上在一个函数中,它对数据库执行一些查询,每次调用该方法时,都会用new创建一个新对象for。中的值。
答案 0 :(得分:1)
在最后一步中,当您尝试迭代列表'resultEnteries'时,您正在使用'for each'循环,并且一次只能访问列表中的单个对象。
您可以尝试使用迭代器:
Iterator<Model01> it = resultEnteries.iterator();
Model01 current = it.next();
Model01 next = it.next();
while (it.hasNext()) {
if (current.name.equals(next.getB1) {
...
}
current = next;
next = it.next();
}