Procházet zdrojové kódy

推送出来的疾病根据发病率排序

kongwz před 4 roky
rodič
revize
116a4ff495

+ 10 - 3
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -270,7 +270,7 @@ public class NeoFacade {
         //根据发病率排序
         Map<String, Double> disdistributionCache = self.getDisdistributionCache();
         numberDiseasesMap.forEach((x,y)->{
-            y.parallelStream().forEach(z ->{
+            y.forEach(z ->{
                 if(disdistributionCache.containsKey(z)){
                     disdistributionCache.put(z,disdistributionCache.get(z));
                 }else {
@@ -278,12 +278,19 @@ public class NeoFacade {
                 }
             });
         });
-        Map<Long,Map<String,Double>> disPack = new HashMap<>();
+        Map<Long,Map<String,Double>> disPack = new LinkedHashMap<>();
         numberDiseasesMap.forEach((x,y)->{
             Map<String,Double> dis_dbt = new HashMap<>();
-            y.parallelStream().forEach(dis -> dis_dbt.put(dis,disdistributionCache.get(dis)));
+            y.forEach(dis -> dis_dbt.put(dis,disdistributionCache.get(dis)));
             disPack.put(x,dis_dbt);
         });
+        Map<Long,List<String>> num_sortDiseases = new HashMap<>();
+
+        disPack.forEach((x,y)->{
+            Map<String, Double> collect = y.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2,LinkedHashMap::new));
+            disPack.put(x,collect);
+
+        });
         System.out.println();
 
 

+ 52 - 0
src/main/java/com/diagbot/util/MapSortUtil.java

@@ -0,0 +1,52 @@
+package com.diagbot.util;
+
+import com.google.common.collect.Maps;
+
+import java.util.Map;
+
+/**
+ * @author kwz
+ * @date 2020/9/17
+ * @time 14:47
+ */
+public class MapSortUtil {
+    /**
+     * 根据map的key排序
+     *
+     * @param map 待排序的map
+     * @param isDesc 是否降序,true:降序,false:升序
+     * @return 排序好的map
+     * @author kwz
+     */
+    public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {
+        Map<K, V> result = Maps.newLinkedHashMap();
+        if (isDesc) {
+            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed())
+                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
+        } else {
+            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey())
+                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
+        }
+        return result;
+    }
+
+    /**
+     * 根据map的value排序
+     *
+     * @param map 待排序的map
+     * @param isDesc 是否降序,true:降序,false:升序
+     * @return 排序好的map
+     * @author kwz
+     */
+    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {
+        Map<K, V> result = Maps.newLinkedHashMap();
+        if (isDesc) {
+            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed())
+                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
+        } else {
+            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue())
+                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
+        }
+        return result;
+    }
+}