1

私は持っていArrayList<HashMap<String, String>> placesListItemsます。

からマップを削除するplacesListItemsと、ヌル マップが残ります。myListAdapterに null リスト項目が含まれるようにします。

for (HashMap<String, String> map : placesListItems) {
  for (Entry<String, String> entry : map.entrySet()) {
    for (int j = 0; j < duplicateList.size(); j++) {
      if (entry.getValue().equals(duplicateList.get(j))) {
        Iterator iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
          Entry<String, String> pairs = (Entry)iterator.next();
          System.out.println(pairs.getKey() + " = " + pairs.getValue());
          iterator.remove(); // avoids a ConcurrentModificationException
        }
      }
    }
  }
}     
ListAdapter adapter = new ItemAdapterHome(getApplicationContext, placesListItems);
lv.setAdapter(adapter); 

どうすればこれを解決できますか?

4

2 に答える 2

2

あなたの問題は、リストからマップを削除するのではなく、マップを空にしていることです。

次のことを試してください。

Iterator<Map<String, String>> iterator = placesListItems.iterator();
while (iterator.hasNext()) {
    Map<String, String> map = iterator.next();
    for (String value : map.values()) {
        if (duplicateList.contains(value)) { // You can iterate over duplicateList, but List.contains() is a nice shorthand.
            iterator.remove(); // Removing the map from placesListItems
            break; // There is no point iterating over other values of map
        }
    }
}
于 2013-05-16T08:45:31.440 に答える