我正在尝试找到一种最佳方法来在其中包含映射的 2 个 arrayLists 中找到不同的元素。
前任。a1 和 a2 是数组列表,其中
a1 = [{"val":"1","id":"19"},{"val":"2","id":"22"},{"val":"3","id ":"2"},{"val":"4","id":"49"}]
a2 = [{"val":"1","id":"12"},{"val":"2","id":"22"},{"val":"3","id ":"32"},{"val":"5","id":"52"}]
预期输出为:
lOld = [{"val":"5","id":"52"}]
lNew = [{"val":"4","id":"49"}]
我对这个问题的解决方案是:
List<Map<String, String>> lOld = new ArrayList<Map<String,String>>();
for (int i = 0; i < a2.size(); i++) {
boolean found = false;
for (int j = 0; j < a1.size(); j++) {
if(a2.get(i).get("val").equals(a1.get(j).get("val"))){
found = true;
break;
}
}
if(found == false){
lOld.add(a2.get(i));
}
}
List<Map<String, String>> lNew = new ArrayList<Map<String,String>>();
for (int i = 0; i < a1.size(); i++) {
boolean found = false;
for (int j = 0; j < a2.size(); j++) {
if(a1.get(i).get("val").equals(a2.get(j).get("val"))){
found = true;
break;
}
}
if(found == false){
lNew.add(a1.get(i));
}
}
有没有解决这个问题的最佳方法?
注意:arrayList 中的映射包含多个值。a1 和 a2 仅作为示例。
跃然一笑
偶然的你
慕容708150
相关分类