1。ArrayList<Map>是这样的。
[{ID=0}, {ORDERNUMBER='系统订单号'}, {CUSTOMERORDER='客户订单号'}]
2。要删除的是这些元素,即
ArrayList<String> kill=new ArrayList<String>();
kill.add("ID");
kill.add("ORDERNUMBER");
kill.add("123");
kill.add("CUSTOMER");
3。得到的结果,应该是这样的。
{CUSTOMERORDER='客户订单号'}//因为只有此元素不在要移除的那个kill范围中。
4。请问如何实现,谢谢!!!!
------解决方案--------------------
遍历remove不就可以吗?
------解决方案--------------------
请楼主把需求说详细点,表示看不懂啊。
------解决方案--------------------
假设你的ArrayList<Map>对象是 listMap ;
ArrayList<Map> newListMap = new ArrayList<Map>();
for(int k=0;k<kill.size();k++){
for(int i=0;i<listMap.size();i++){
Map map = (Map)listMap.get(i);
if(map.containsKey(kill.get(k))){
newListMap.add(map);
}
}
listMap.removeAll(newListMap);
}
------解决方案--------------------
最简单的写法
Map<String, String> map = new HashMap<String, String>();
map.put("ID", "0");
map.put("ORDERNUMBER", "系统订单号");
map.put("CUSTOMERORDER", "客户订单号");
List<String> kill = new ArrayList<String>();
kill.add("ID");
kill.add("ORDERNUMBER");
kill.add("123");
for (int i = 0; i < kill.size(); i++) {
if (map.containsKey(kill.get(i))) {
map.remove(kill.get(i));
}
}
System.out.println(map);