簡體   English   中英

遍歷對象數組Java

[英]Iterate over array of objects Java

因此,我有一個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對象,這些代碼片段實際上是在對數據庫執行一些查詢的函數內,並且每次調用該方法時,都會在for中使用新值創建一個新對象。

在最后一步中,當您嘗試遍歷列表'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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM