集合根據Map裏某個key對List集合重新排序介紹

 

public static void main(String[] args) {
     List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
      Map<String, Object> map1 = new HashMap<String, Object>();
      map1.put("name", "張三");
      map1.put("total", "5");
      Map<String, Object> map2 = new HashMap<String, Object>();
      map2.put("name", "李四");
      map2.put("total", "12");
      Map<String, Object> map3 = new HashMap<String, Object>();
      map3.put("name", "王五");
      map3.put("total", "31");
      list.add(map1);
      list.add(map3);
      list.add(map2);
      //排序前 
      for (Map<String, Object> map : list) {
          System.out.println(map.get("total"));
      }


         //比較兩個對象的順序,如果前者小於、等於或者大於後者,則分別返回-1/0/1,逆序的話就用o2.compareTo(o1)即可
      Collections.sort(list, new Comparator<Map<String, Object>>() {
          public int compare(Map<String, Object> o1, Map<String, Object> o2) {
              Integer name1 = Integer.valueOf(o1.get("total").toString()) ;//name1是從你list裏面拿出來的一個 
              Integer name2 = Integer.valueOf(o2.get("total").toString()) ; //name2是從你list裏面拿出來的第二個name
              return name1.compareTo(name2);
          }
      });
      //排序後 
      System.out.println("-------------------");
      for (Map<String, Object> map : list) {
          System.out.println(map.get("total"));
      }
  }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章