Map的内容按字母顺序排序

map有自带的排序功能,但需要重写排序方法,代码如下:

package coreJava.com.shindo.corejava.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 MapSort {
    /**
     *
     * @Title: sortMap
     * @Description: 对集合内的数据按key的字母顺序做排序
     */
    public List<Map.Entry<String, String>> sortMap(final Map<String, String> map) {
        final List<Map.Entry<String, String>> infos = new ArrayList<Map.Entry<String, String>>(map.entrySet());

        // 重写集合的排序方法:按字母顺序
        Collections.sort(infos, new Comparator<Map.Entry<String, String>>() {
            @Override
            public int compare(final Entry<String, String> o1, final Entry<String, String> o2) {
                return (o1.getKey().toString().compareTo(o2.getKey()));
            }
        });

        return infos;
    }

    public static void main(final String[] args) {
        final Map<String, String> map = new HashMap<String, String>();
        map.put("charSet", "utf-8");
        map.put("merId", "5412");
        map.put("acqId", "321");

        final List<Map.Entry<String, String>> list = new MapSort().sortMap(map);

        for (final Map.Entry<String, String> m : list) {
            System.out.println(m.getKey() + ":" + m.getValue());
        }

    }

}

执行main方法,结果如下:

acqId:321
charSet:utf-8
merId:5412
时间: 2024-11-13 11:20:41

Map的内容按字母顺序排序的相关文章

jquery模拟字母顺序排序定位城市列表方法(bug改进)

jquery模拟字母顺序排序定位城市列表方法 下载地址http://www.lanrenzhijia.com/jquery/3155.html bug 重庆--长沙不能正常排序. 原因是derail有可能会放回两个字符的数组.需要做判断 改进 //改动 特殊字符-->可能还有问题--返回的是数组有两个字符 var   derail =makePy(SortList.eq(i).find('.num_name').text().charAt(0)) if(derail.length==2&&a

VSTO for Microsoft Outlook Recipient Sort(收件人按字母顺序排序)

最近有这样一个需求,发邮件时To给谁谁希望能按照字母顺序排序,避免不必要的顾虑,你懂的 经过分析,1.需要找到读To 区域的方法 2.读取后分割字符串到数组 3. 经过数组排序后输出到To中 简单代码如下: MailItem mail = Globals.ThisAddIn.Application.ActiveInspector().CurrentItem as MailItem; string[] namelist = Regex.Split(mail.To,"; ",RegexOp

url参数用&amp;拼接并且按照字母顺序排序方法

private string urlParamManager(JObject postArray, bool flag) { ArrayList keys = new ArrayList(); foreach (JToken child in postArray.Children()) { JProperty property = child as JProperty; if (flag) { if (!"signMethod".Equals(property.Name) &&

java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序

package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class Zhongwen_Shuzi_Times { public static void main(String[] args) { /* * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 */ String str="琅琊榜fengqichanglin

LinkedHashMap 根据PUT顺序排序Map

最近工程里面报表需要合计 , 因为所有的项都是动态的,所以只能动态添加. 思路是使用Map,初始化所有Map,然后在Map中合计并且覆盖. 使用HashMap , 初始化后所有动态项的顺序都乱了. Map<String , Double> totalMap = new  HashMap<String, Double>(); for (Map<String, Object> map : itemList) {itemSql += "SUM("+map.

Java 练习:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中

package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class IO_sort_content { public static void main(String[] args) { /* * 已知文件 a.txt 文件中的内容为"bcde

【C语言】用指针数组完成:将若干字符串安字母顺序输出

//用指针数组完成:将若干字符串安字母顺序输出 #include <stdio.h> #include <string.h> void print(char * name[],int n) //char * name[],指针数组,每个数组元素是一个char*(即字符串)类型 { int i; for(i=0;i<n;i++) { printf("%s\n",name[i]); } } void sort(char *name[],int n) { cha

将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化

/*测试数据:Shen zhen is a beautiful city!*/ /*运行结果:city! beautiful a is zhen Shen*/ #include<stdio.h> #define SIZE 1000 void reverse(char *low,char *high)/*接受两个指针,将指针中间的内容倒置*/ { while (low < high){ *low = *low^*high; *high = *low^*high; *low = *low^*

获取EMF文件内全部文字, 并按照左上到右下的顺序排序

因为工作要求, 需要对EMF文件文字内容做分析.....SO, 如下代码出现了 懒得加注释了, 反正对外接口属性就那么几个, 根据英文猜吧, 很容易的 说明一下: 这个东西结果会对所有文字内容按照左上到右下的顺序排序(EMF内数据顺序是根据画图顺序来的, 所以不一定是什么顺序, 但是数据分析就要得到行列关系) 但是图片没有行列概念, 所以我简单借鉴了一下纯粹横排版模式, 认为2个文字元素, 只要显示范围的中线在对方范围内, 就会被认为是同一行 PS: 这种排序对于规则的文字输出没问题, 但是如果