本文主要是介绍Java java.util.ConcurrentModificationException异常原因和解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
异常原因
记录一次问题处理日志:Java中直接对使用for-each进行迭代实际上也会出现这种问题。可以先把集合转成iterator,再进行循环,可解决此问题。
下面展示一些 内联代码片
。
// java.util.ConcurrentModificationExceptionSet<String> strings = ((JSONObject) jsonArray.get(0)).keySet();Set<String> stringsCopy = new HashSet<>(strings);Set<String> thirdStrs = ((JSONObject) thirdArray.get(0)).keySet();Iterator<String> iterator = stringsCopy.iterator();while (iterator.hasNext()){String s = iterator.next();Map<String, JSONArray> groupedThirdArray = thirdArray.stream().map(obj -> (JSONObject) obj).collect(Collectors.groupingBy(json -> json.getString(s),() -> new HashMap<>(),Collectors.mapping(JSONObject::toJSON,Collectors.toCollection(JSONArray::new))));((JSONArray) result.get(value1).get(parentNodeNames.get(value1))).forEach(res->{if (groupedThirdArray.get(((JSONObject) res).get(s)).size()>0){((JSONObject) res).put(byId.getThirdParamName(),groupedThirdArray.get(((JSONObject) res).get(s)));}});}
链接: 参考文档链接如下
这篇关于Java java.util.ConcurrentModificationException异常原因和解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!