arrayListを繰り返し処理して、特定の条件に該当する項目を削除しています。コレクションからオブジェクトを削除するときにIllegalStateExceptionが発生する
public static ArrayList<String> filteredArrayList(HashMap<String, Boolean> filters){
ArrayList<String> filteredArrayList = new ArrayList<>();
filteredArrayList = fullList();
Iterator<String> i = filteredArrayList.iterator();
while (i.hasNext()) {
String s = i.next();
if(!(filters.get("sometextStatus")) && (s.toLowerCase().trim().contains("sometext".trim().toLowerCase()))){
i.remove();
}
if(!(filters.get("120Status")) && (s.toLowerCase().trim().contains("120".trim().toLowerCase()))){
i.remove();
}
}
}
は、なぜ最初の文の仕事ん:
if(!(filters.get("sometextStatus")) && (s.toLowerCase().trim().contains("sometext".trim().toLowerCase()))){
i.remove();
}
しかし、もう一つは失敗しますか?
if(!(filters.get("120Status")) && (s.toLowerCase().trim().contains("120".trim().toLowerCase()))){
i.remove();
}
私が取得しています:スレッドで
例外 "メイン" java.lang.IllegalStateException
を1秒間。
"s"と "i"は何ですか?私は理解するのに役立つだろう、例えば、タイプを知るために、あなたはおそらくループを表示することができます(無駄な線なし) – azro
私はあなたが括弧を数えることから提供されたコードに何かがないと思う。 – PKlumpp
あなたの質問投稿[mcve]に適切な答えを得るには。 – Pshemo