0

在遍历键时如何完成更新条目

Map<String,List<SObject>> Map1=new HashMap<String,List<SObject>>();
Map<String,List<SObject>> Map2=new HashMap<String,List<SObject>>();

for(String name: Map1.keyset()){
//do something

   for(SObject obj1: Map1.get(name)){
    //iterate through the list of SObjects returned for the key 

        for(SObject obj2 : Map2.get(name)){
        //iterate through the list of SObject values for the keys and update or remove the values related to the key
        }
   }
 }
4

2 回答 2

2

您可以在地图的 entrySet 上使用 Iterator - map.entrySet().iterator()

确保在您迭代地图时没有其他任何东西在修改地图,但只要您执行以下操作,您自己的修改将是安全的:

- only remove items using the iterator's remove() method, and
- only modify a value by using the Map.Entry setValue() method

请参阅http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#entrySet()

于 2012-07-07T00:20:33.807 回答
0

要在迭代期间修改集合,您需要使用ListIteration接口:

http://docs.oracle.com/javase/6/docs/api/java/util/ListIterator.html

于 2012-07-07T00:03:28.013 回答