以下はMapのリストの中から一致するマップキーがあればそのMapを削除する、というメソッドです。ですが、このまま使うとConcurrentModificationExceptionが発生します。
/** * マップリストから特定のキーのマップを削除(全部削除) * * @return */ public static List<Map<String, String>> removeMapListAllByKey(List<Map<String, String>> mapList, String key) { for (Map<String, String> map : mapList) { for (Map.Entry<String, String> e : map.entrySet()) { if (key.equals(e.getKey())) { mapList.remove(map); } } } return mapList; }
これを解決するために、
1個removeしたら一度リターンしてmapListの最初からまたループし、removeする数が0になるまで続けるという再帰的な方法は思いつくのですが、それ以外にもっとスマートな方法があれば教えていただけないでしょうか。
◆環境
Android Studio 2.3.3
Compile SDK 26
Target SDK 26
Min SDK 21
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/21 09:24
2018/09/21 09:26
2018/09/21 09:26
2018/09/21 09:28
2018/09/21 12:53