将Map的内容按value排序

来源:互联网 发布:数据分析与统计 编辑:程序博客网 时间:2024/05/22 13:00

首先,几个相关的类,Map、HashMap、HashTable、LinkedHashMap、TreeMap。区别: 点击打开链接

其次,如何将Map类中的数据,按value排序。例子:


package sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;


public class CollSort {
public static void main(String[] args){
    String sdf1 = new String("2015-01-11 1:01:02");
    String sdf2 = new String("2015-01-11 1:01:03");
    String sdf3 = new String("2015-01-11 1:01:12");
    
    
    Map<String, String> map = new HashMap<String, String>();
    map.put("a", sdf3);
    map.put("b", sdf1);
    map.put("c", sdf3);
    map.put("d", sdf2);
    
    
    ArrayList<Map.Entry<String, String>> infoIds =
        new ArrayList<Map.Entry<String, String>>(map.entrySet());

    
    //排序前
    for (int i = 0; i < infoIds.size(); i++) {
        String id = infoIds.get(i).toString();
        System.out.println(id);
    }
    //a=2015-01-11 1:01:12
    //b=2015-01-11 1:01:02
    //c=2015-01-11 1:01:12
    //d=2015-01-11 1:01:03

    System.out.println('\n');
    //排序
    Collections.sort(infoIds, new Comparator<Map.Entry<String, String>>() {   
        public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {      
            //return (o2.getValue() - o1.getValue());
            return (o1.getValue()).compareTo(o2.getValue());
        }
    });

    //排序后
    for (int i = 0; i < infoIds.size(); i++) {
        String id = infoIds.get(i).toString();
        System.out.println(id);
    }
    //b=2015-01-11 1:01:02
    //d=2015-01-11 1:01:03
    //a=2015-01-11 1:01:12
    //c=2015-01-11 1:01:12
}
}




0 0
原创粉丝点击