日期:2014-05-18  浏览次数:20643 次

ArrayList<map>如何移除指定的元素
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);