==================================
說明:其中調用、轉換的原理我還沒有搞得很清楚,但是直接拿過來用還是可以的,故此簡單整理了下,希望以後用得上。。。
==================================
=====================
1.對Map集合的排序
package com.lin.map;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class Test_HashMap_Sort {
public static void main(String[] args){
HashMap<String,Integer> hashMap = new HashMap<>();
hashMap.put("lin", 55);
hashMap.put("lin2", 88);
hashMap.put("lin8", 33);
hashMap.put("lin5", 66);
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(hashMap.entrySet());
Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() {
//降序排序
public int compare(Entry<String, Integer> o1,Entry<String, Integer> o2) {
//使用Entry類中的值來比較大小
return o2.getValue().compareTo(o1.getValue());
// //使用Entry類中的鍵來比較大小
// return o2.getKey().compareTo(o1.getKey());
}
});
for(Entry<String,Integer> e :list){
System.out.println(e.getKey()+"---->"+e.getValue());
}
}
}
用值排序結果:
用鍵排序結果:
====================================
2.對List集合的排序
package com.lin.map;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test_HashMap_Sort {
public static void main(String[] args){
List<Integer> list2 = new ArrayList<>();
list2.add(111);
list2.add(333);
list2.add(222);
list2.add(000);
Collections.sort(list2);
for(int i=0;i<list2.size();i++){
System.out.println(list2.get(i));
}
}
}
結果: