zoukankan      html  css  js  c++  java
  • 对map创建出来的值顺序排序问题

    TreeMap
    在用Ajax动态创建checkBox时,而把值放在了HashMap中,hashMap是无序的,因此你动态创建出来的顺序是乱的,比如你想要的顺序是1、2、3、4但出来的结果可能是 3、2、1、4等,刚开始想在sql中进行排序,认为这样就可以进行排序,但结果还是没有进行排序,最后上网查资料发现要对Map进行排序,可以使用treeMap,
        private Map<String, String> sortedMap(Map<String, String> classMap2) {
     TreeMap<String, String> result = new TreeMap<String, String>();
        Object[] unsort_key = classMap2.keySet().toArray();
        Arrays.sort(unsort_key);
        for (int i = 0; i < unsort_key.length; i++) {
         result.put(unsort_key[i].toString(), classMap2.get(unsort_key[i]));
        }
        return result.tailMap(result.firstKey());
       } 
    这样你创建出来的map就是有序的了,在这里是默认对key进行排序的。
    在这里必须使用TreeMap,因为HashMap是通过HashCode对其内容进行快速查找,而TreeMap中所有的元素则保持这某种固定的顺序。
    但经常使用的是HashMap,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力。 
  • 相关阅读:
    Linux之iptables 防火墙学习
    CentOS下安装JDK7
    分布式日志系统Scribe安装
    Python解析XML
    Python目录操作
    iphone开发-绘图集合 HA
    Mac技巧之显示/隐藏苹果MacOSX系统下隐藏文件的终端命令 HA
    xcode技巧宏定义 HA
    Registering Custom URL Schemes and Handling URL Requests HA
    block about basic HA
  • 原文地址:https://www.cnblogs.com/wjwen/p/4274056.html
Copyright © 2011-2022 走看看