首页 > 编程知识 正文

fastjsonJSONArray 遍历跳出测试,fastjsonjsonarray遍历

时间:2023-05-04 13:23:08 阅读:197507 作者:2609

public static void main(String[] args) { String valueByKey = "[{15:10},{10:8},{5:5}]"; JSONArray rules = JSON.parseArray(valueByKey); System.out.println(rules); System.out.println("外层 lambda, 里层 lambda"); rules.forEach(o -> { JSONObject rule = (JSONObject) o; rule.forEach((key, value) -> { if ("10".equals(key)) { System.out.println("aaaaa" + value); return; } System.out.println(value); }); }); System.out.println("外层 lambda, 里层 Entry"); rules.forEach(o -> { JSONObject rule = (JSONObject) o; for (Map.Entry<String, Object> entry : rule.entrySet()) { if ("10".equals(entry.getKey())) { System.out.println("bbbbbbb" + entry.getValue()); return; } System.out.println(entry.getValue()); } }); System.out.println("外层增强 for, 里层 lambda"); for (Object o : rules) { JSONObject rule = (JSONObject) o; rule.forEach((key, value) -> { if ("10".equals(key)) { System.out.println("ccccc" + value); return; } System.out.println(value); }); } System.out.println("外层增强 for, 里层 Entry"); for (Object o : rules) { JSONObject rule = (JSONObject) o; for (Map.Entry<String, Object> entry : rule.entrySet()) { if ("10".equals(entry.getKey())) { System.out.println("ddddddd" + entry.getValue()); return; } System.out.println(entry.getValue()); } } System.out.println("双层循环结束"); } [{"15":10},{"10":8},{"5":5}]外层 lambda, 里层 lambda10aaaaa85外层 lambda, 里层 Entry10bbbbbbb85外层增强 for, 里层 lambda10ccccc85外层增强 for, 里层 Entry10ddddddd8 结论 : fastjson.JSONArray 遍历跳出 采用 外层增强 for, 里层 Entry 方式, 才能跳出 但是双层遍历  后面面的不执行, 会直接跳出方法 !!! 优化 外层增强 for, 里层 Entry, 使得双层遍历跳出之后, 继续执行后面的代码 !! System.out.println("外层增强 for, 里层 Entry"); boolean flag = false; for (Object o : rules) { JSONObject rule = (JSONObject) o; for (Map.Entry<String, Object> entry : rule.entrySet()) { if ("10".equals(entry.getKey())) { System.out.println("ddddddd" + entry.getValue()); flag = true; break; } System.out.println(entry.getValue()); } if (flag) break; } System.out.println("双层循环结束");

有什么好的方法欢迎指出, 一直感觉可以继续优化

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。