两个list中,某字段相等处理,求助
两个list的字段一样,listA的A字段值很全,B字段都为0,listB中的A字段的值不全,但值一定在listA中存在,B字段为有效值。
要求:
把listB中的B字段,放到对应的listA中,
listA
A B
a 0
b 0
c 0
listB
A B
a 1
c 3
结果
listA
A B
a 1
b 0
c 3
怎么写代码呢??谢谢了
[解决办法]
ArrayList<XObject> listA,listB;//......for (int i=0; i<listB.size(); i++) { for (int j=0; j<listA.size(); j++) { if (listA.get(j).A.equals(listB.get(i).A)) listA.get(j).B = listB.get(i).b; }}
[解决办法]
数据量不大,1楼的就可以
数据量大的话,最好先排序
[解决办法]
class YourListStruct { public String A; public int B; static public void put(YourListStruct[] listA, YourListStruct[] listB) { Hashtable<String, YourListStruct> lsA = new Hashtable<String, YourListStruct>(); for (int i = 0; i < listA.length; i++) lsA.put(listA[i].A, listA[i]); for (int i = 0; i < listB.length; i++) { YourListStruct e = lsA.get(listB[i].A); if (e != null) e.B = listB[i].B; } }}
[解决办法]