Map<String, Long>排序
时间: 2024-01-09 22:20:00 浏览: 92
可以使用上述代码中的sortMap方法对Map<String, Long>进行排序,该方法将Map转换为List,再通过Collections.sort方法进行排序,最后再将排序后的List转换为LinkedHashMap返回。需要注意的是,该方法是按照Map中的value值进行降序排序的。如果需要按照key值或者其他方式进行排序,需要修改Comparator中的比较方式。
相关问题
@Override public Map<String, Object> selectOrderDetails(String currPage, String pageLimit, String sortType, String value, List<Map<String, Object>> searchConditions, JSONObject jsonObj) { Long id = jsonObj.getLong("id"); Map<String, Object> data = new HashMap<String, Object>(); String hql = " from MisHROrderDetails order WHERE order.orderPlanId = " + id ; data = commonDao.findByQueryMapResult(hql, null, null, currPage, pageLimit, sortType, searchConditions); return data; }
这段代码是一个Java方法,其中的参数包括当前页码、每页显示数量、排序类型、搜索条件、JSON对象等。该方法通过使用Hibernate Query Language(HQL)查询数据库中的订单详情数据,其中的查询条件是订单计划的ID。最终,该方法返回一个包含查询结果的Map集合。这段代码中的commonDao是一个通用的数据访问对象,用于执行数据库查询操作。
for (String groupid : groupIds) { Long groupId1 = Long.valueOf(groupid); List<HkEquipment> hkEquipments = hkEquipmentRepository.findAllByAppIdAndShopIdAndGroupId(appId, shopId, groupId1); if (hkEquipments.isEmpty()) { throw new CustomException("该分组没有设备"); } List<String> cameraUuids = hkEquipments.stream().map(HkEquipment::getCameraUuid).toList(); List<PassengerFlowMonth> yearList = passengerFlowMonthRepository.findAllByAppIdAndShopIdAndCountMonthBetweenAndCameraUuidIn(appId, shopId, Stime, Etime, cameraUuids); Map<String, Integer> groupData = yearList.stream() .collect(Collectors.groupingBy( item -> item.getCountMonth().toString().substring(0, 4), Collectors.summingInt(item -> Math.toIntExact(item.getInNum())) )); ArrayList<Map<String, Object>> list = new ArrayList<>(); TreeMap<String, Integer> paramTreeMap = new TreeMap<>(groupData); paramTreeMap.forEach((K, V) -> { Map<String, Object> hash = new HashMap<>(); hash.put("time", K); hash.put("count", V); list.add(hash); }); for (Map<String, Object> stringObjectMap : list1) { for (Map<String, Object> objectMap : list) { if (stringObjectMap.get("time").toString().equals(objectMap.get("time").toString())) { stringObjectMap.put("count", objectMap.get("count")); } } } }第二次循环groupId的时候list1里的key相同 value以,方式隔开
这段代码中包含了对一组设备的数据进行处理的逻辑。首先根据给定的appId、shopId和groupId找到对应的设备列表hkEquipments,如果列表为空则抛出异常。然后从hkEquipments中提取出所有的cameraUuid,用这些uuid从数据库中查询符合条件的记录yearList。对yearList进行分组,将每年的数据统计出来,存放在groupData中,最后将groupData中的数据按时间排序,存放在list中。接下来的循环中,将list中的统计数据和list1中的原始数据进行比较,如果时间相同则将统计数据中的count值赋给list1中的count值。至于“以,方式隔开”的部分,可能需要更多的上下文信息才能理解。
阅读全文