- 集合转json(一下都用 com.alibaba.fastjson包)
- JSONArray对象循环
- 获取集合某个字段的值,set接收
- list集合根据字段分组
- jsonArray分组
- jsonArray根据字段值相等过滤出来,返回JSONArray
- 集合筛选对象 如果有返回对象,没有返回null parallelStream(多线程,异步任务)
尽量以集合来获取数据方便后续计算
//jfinal 数据库查询 ListJSONArray对象循环users= BusReportCrowd.dao.template("user.find", kv).find(); //转json JSonArray array = JSONArray.parseArray(JSON.toJSONString(users));
//转object对象 array为jsonArray
Object o = array.stream().max(Comparator.comparing(item -> ((JSONObject) item).size())).get();
for (Map.Entry entry : ((JSONObject) o).entrySet()) {
//entry 为jsonObject 直接获取key value
}
//另一种
for (Object object : array) {
JSonObject temp = (JSONObject) object;
for (Map.Entry entry : temp.entrySet()) {
}
}
获取集合某个字段的值,set接收
//转object对象 list集合 Setlist集合根据字段分组sets = list.stream().map(item -> String.valueOf(item.getString("字段名"))).collect(Collectors.toSet()); //另一种 array为jsonArray对象 Set hourSet = array.stream().map(item -> ((JSONObject) item).getString("字段名")).collect(Collectors.toSet());
//集合根据name分组 key为名字,value为当前相同名字的集合 MapjsonArray分组> userItems= users.stream().collect(Collectors.groupingBy(item -> item.getName())); //遍历 for (Map.Entry > userItem: userItems.entrySet()) { }
//集合根据字段名分组 key为值,value为当前相同key的集合 MapjsonArray根据字段值相等过滤出来,返回JSonArray> jsonListMap = array.stream().collect(Collectors.groupingBy(item -> ((JSONObject) item).getString("字段名"))); for (Map.Entry > entry : jsonListMap.entrySet()) { }
//array为之前JSonArray
JSonArray list = array.stream().filter(item -> ((JSONObject) item).getStr("name").equals(name)).collect(Collectors.toCollection(JSONArray::new));
集合筛选对象 如果有返回对象,没有返回null parallelStream(多线程,异步任务)
//获取集合id Listids= users.parallelStream().map(User::getId).collect(Collectors.toList()); //集合筛选对象 如果有返回对象,没有返回null User user= users.parallelStream().filter(o -> item.getString("name").equals(o.getName())).findAny().orElse(null);



