zoukankan      html  css  js  c++  java
  • 按照HashMap中value值进行排序

    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Collections;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.LinkedHashMap;
    
    /**
     * 测试HashMap按照value值排序输出
     * 先新建一个实现Comparable接口的类,将HashMap的元素用新建类封装,然后构建ArrayList,用Collection.sort排序
     * 
     * @author ywf
     * 
     */
    public class Test {
    
    	public static void main(String[] args) throws Exception {
    
    		HashMap<String, Integer> input = new LinkedHashMap();// 需要用LinkedHashMap,保证输入的顺序和输出的顺序一致
    		input.put("ywf", 65);
    		input.put("lqq", 98);
    		input.put("lp", 75);
    		input.put("lj", 90);
    		sort(input);
    	}
    
    	public static void sort(HashMap<String, Integer> input) {
    		ArrayList<Pair> list = new ArrayList();
    		for (String id : input.keySet()) {
    			Pair pair = new Pair(id, input.get(id));
    			list.add(pair);
    		}
    		Collections.sort(list);
    		input.clear();
    		for (Pair p : list) {
    			input.put(p.id, p.value);
    		}
    		System.out.println(input);
    	}
    
    	@SuppressWarnings("rawtypes")
    	static class Pair implements Comparable {
    		String id;
    
    		int value;
    
    		public Pair(String id, int n) {
    			this.id = id;
    			this.value = n;
    		}
    		@Override
    		public int compareTo(Object o) {
    			// TODO Auto-generated method stub
    			return this.value - ((Pair) o).value;
    		}
    
    	}
    }
    

      

  • 相关阅读:
    函数嵌套 lisp表达式求值
    初涉时间间隔问题
    高精度算法-带小数大数相加
    12/10 C语言程序设计竞赛 后五题
    字符串头尾连接问题-木棒连接
    ZJGSU-ACM OJ 心得
    高精度算法-大数乘法
    趣味两题-(简单追及问题、两直线相交问题)
    struts2基于注解的action
    spring中常用的注解
  • 原文地址:https://www.cnblogs.com/yuwenfeng/p/3259385.html
Copyright © 2011-2022 走看看