2013-10-25 67 views
-2

我有2個對象列表,一個是UI對象,另一個是數據庫對象,我想比較兩個對象列表(UI &數據庫對象)並獲取索引UI對象的列表。列表比較並獲得索引

List<ObjectVO> listOfVOObj = new ArrayList<ObjectVO>(); 
List<ObjectDB> listOfDBObj = new ArrayList<ObjectDB>(); 


ObjectVO{ 
private String regNo; 
private String userId; 
private String name; 
... 
} 

ObjectDB{ 
private String regNo; 
private String userId; 
.. 
} 

listOfVOObj: 
index regNo userId name 
1  123 456 name1 
2  2233 567 name2 
3  2234 568 name3 
4  2235 569 name4 
5  2236 570 name5 


listOfDBObj: 
index regNo userId 
1  2233 567  
2  2234 568  

我要比較兩個列表,並希望得到的listOfVOObj被匹配到listOfDBObj記錄的記錄索引。

+0

顯示您的嘗試 –

+0

發佈您到目前爲止嘗試過的一些代碼。 – Jixi

+0

你能告訴我們一些你的代碼嗎?還是沒有一條線? –

回答

1

從你的描述看起來這應該是足夠的(在我上比較對象REGNO代碼)

List<string> indexList = new List<string>(); 

for (int i = 0; i < listOfVOObj.length(); i++) 
{ 
    for (int j = 0; j < listOfDBObj.length(); j++) 
    { 
     if (listOfVOObj[i].regNo == listOfDBObj[j].regNo && listOfVOObj[i].userId == listOfDBObj[j].userId) 
     { 
      int index = i + 1; 
      indexList.Add(index); 
     } 
    } 
} 

如果您想先同時存儲對象的索引,你必須創建新類這樣的:

public class MyClass 
{ 
     string indexVOObj; 
     string indexDBObj; 

     public MyClass(string index1, string index2) 
     { 
       indexVOObj = index1; 
       indexDBObj = index2; 
     } 
} 

然後,你必須使用:

List<MyClass> indexList = new List<MyClass>(); 

for (int i = 0; i < listOfVOObj.length(); i++) 
{ 
    for (int j = 0; j < listOfDBObj.length(); j++) 
    { 
     if (listOfVOObj[i].regNo == listOfDBObj[j].regNo && listOfVOObj[i].userId == listOfDBObj[j].userId) 
     { 
      int index1 = i + 1; 
      int index2 = j + 1; 
      indexList.Add(new MyClass(index1, index2)); 
     } 
    } 
} 
+0

感謝您的回覆。 – user2507974

+0

@ user2507974沒問題啦! – Tafari