【发布时间】:2017-06-23 13:31:57
【问题描述】:
我正在遍历 arrayList 并删除适用于某些条件的项目。
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 中的异常
第二个。
【问题讨论】:
-
什么是“s”和“i”?我会帮助理解,例如了解类型,您可以显示循环(没有无用的行)
-
我认为您在计算括号时提供的代码中缺少某些内容。
-
要正确回答您的问题帖子minimal reproducible example。
-
要更新您的问题,请使用edit 选项。
-
我们需要查看您的代码,还包含返回布尔值,并且在您知道其中没有空格的字符串上使用修剪没有任何意义。