List里面的hashMap根据某个Key的值进行排序

我们的集合常常需要排序。我在开发的时候动态字段查询,有字段含义,要根据字段含义分类,并且排序,开始一直纠结于数据库加到一个字段排序值。后面仔细想加多工作量,然后换了一个思路。直接集合排序,因为Key值是String,所以用hashCode进行排序。代码如下:

知识点(根据name的值进行排序)

for (int i = 0; i < fields.length; i++) {
                    Map<String, Object> fvMap = new HashMap<>();
                    fvMap.put("name", meanings[i]);
                    fvMap.put("value", paramValueMap.get(fields[i]));
                    fvMap.put("unit", companys[i]);
                    subVlaueList.add(fvMap);
                }
                Collections.sort(subVlaueList, new Comparator<Map<String, Object>>() {
                    public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                        Integer name1 = Integer.valueOf(o1.get("name").toString().hashCode()) ;//name1是从你list里面拿出来的一个
                        Integer name2 = Integer.valueOf(o2.get("name").toString().hashCode()) ; //name1是从你list里面拿出来的第二个name
                        return name1.compareTo(name2);
                    }
                });

 

posted @ 2022-08-11 18:49  码海兴辰  阅读(10)  评论(0编辑  收藏  举报