java8的新特性,Collections.sort(排序的List集合)的使用,對list封裝Map里面的某個值進行排序


--------------------------對簡單list的排序----------------------------------
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
Collections.sort(list)

 


排序前是:
  1
  2
  3
  3

排序后:
  4
  3
  2
  1
------------------------------------------------------------------

----------------------------對list封裝Map里面的某個值進行排序-------------------------------------
List<Map<String,Object>> mapList = new ArrayList<Map<String,Object>>();

Collections.sort(mapList,new Comparator<Map<String,Object>>() {
            //降序排序
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                double s = Double.parseDouble(o1.get("dist").toString());  //由於從map里面取出來的值為Object類型,無法直接轉換為Integer類型,需要轉換為double
                double d = Double.parseDouble(o2.get("dist").toString());
                Double D1 = new Double(s); //由於double類型無法直接轉換為Integer類型,需要用封裝類先封裝double
                Double D2 = new Double(d);
                Integer s1 = D1.intValue();  //使用Double的intValue方法轉換為Integer類型
                Integer s2 = D2.intValue();
                //使用Entry類中的值來比較大小
                return s1.compareTo(s2);  //s1在前面是升序,s1在后面是降序
//              //使用Entry類中的鍵來比較大小
//                return o2.getKey().compareTo(o1.getKey());
            }
        });

 



才疏學淺,總結得不好,希望能夠幫上需要的人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM