2013-10-25 63 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