zoukankan      html  css  js  c++  java
  • HashMap与TreeMap按照key和value排序

    下面结合代码介绍HashMap与TreeMap按照key和value排序。

    package com.sort;
    
    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;
    import java.util.TreeMap;
    
    /**
     * Map的排序
     * 
     * @author root
     *
     */
    public class MapSort {
        /**
         * TreeMap按照key进行排序
         */
        public static void TreeMapSortByKey() {
            Map<String, String> map = new TreeMap<String, String>(new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    // 降序排列
                    return o2.compareTo(o1);
                }
            });
            map.put("c", "ccccc");
            map.put("a", "aaaaa");
            map.put("b", "bbbbb");
            map.put("d", "ddddd");
            for (String key : map.keySet()) {
                System.err.println("key:" + key + "  value:" + map.get(key));
            }
        }
    
        /**
         * TreeMap按照value排序
         */
        public static void TreeMapSortByValue() {
            Map<String, String> map = new TreeMap<String, String>();
            map.put("d", "ccccc");
            map.put("b", "bbbbb");
            map.put("a", "eeeee");
            map.put("c", "ddddd");
            // 将map.entrySet()转换成list
            List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
            // 通过比较器来实现排序
            Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
                @Override
                public int compare(Entry<String, String> o1, Entry<String, String> o2) {
                    // 升序排序
                    return o1.getValue().compareTo(o2.getValue());
                }
            });
            for (Map.Entry<String, String> mapping : list) {
                System.out.println(mapping.getKey() + ":" + mapping.getValue());
            }
        }
    
        /**
         * Map按照Key排序
         */
        public static void MapSortByKey() {
            Map<String, String> map = new HashMap<String, String>();
            map.put("d", "ccccc");
            map.put("b", "bbbbb");
            map.put("a", "eeeee");
            map.put("c", "ddddd");
            // 将map.entrySet()转换成list
            List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
            // 通过比较器来实现排序
            Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
                @Override
                public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
                    // 升序排序
                    return o1.getKey().compareTo(o2.getKey());
                }
            });
            for (Map.Entry<String, String> mapping : list) {
                System.out.println(mapping.getKey() + ":" + mapping.getValue());
            }
        }
    
        /**
         * Map按照Value排序
         */
        public static void MapSortByValue() {
            Map<String, String> map = new HashMap<String, String>();
            map.put("d", "ccccc");
            map.put("b", "bbbbb");
            map.put("a", "eeeee");
            map.put("c", "ddddd");
            // 将map.entrySet()转换成list
            List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
            // 通过比较器来实现排序
            Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
                @Override
                public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
                    // 降序排序
                    return o2.getValue().compareTo(o1.getValue());
                }
            });
            for (Map.Entry<String, String> mapping : list) {
                System.out.println("key:"+mapping.getKey() + "  value:" + mapping.getValue());
            }
        }
    
        public static void main(String[] args) {
            // MapSort.TreeMapSortByKey();
            // MapSort.TreeMapSortByValue();
            MapSort.MapSortByKey();
            MapSort.MapSortByValue();
        }
    }

    每天积累一点点,进步一点点。

    我坚信这是个好习惯。

  • 相关阅读:
    python bottle学习(二)加载配置文件
    python bottle学习(一)快速入门
    python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例)
    Centos 虚拟机网络问题,网卡起不来,重启network服务失败
    机器学习框架MXnet安装步骤
    linux机器之间配置ssh无密访问
    好多年没写点技术相关的东西了,今天回来看看,找找当年做程序员的感觉
    vue路由传参的三种基本方式
    JavaScript判断对象是否包含某个属性的几种方法
    CSS实现三栏布局(左边固定、右边固定、中间自适应)的五种方式
  • 原文地址:https://www.cnblogs.com/xubiao/p/5803976.html
Copyright © 2011-2022 走看看