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具有同步的能力。 
  • 相关阅读:
    Windows抓取密码总结
    PHP一句话简单免杀
    Shiro反序列化利用
    windows绕过杀软添加账户密码
    java基础-操作符
    微信小程序开发笔记(十一)--输入框计数
    微信小程序开发笔记(十)--多选标签效果
    微信小程序开发笔记(九)--单选标签效果
    微信小程序开发笔记(八)--路由跳转
    proxy_pass 代理转发
  • 原文地址:https://www.cnblogs.com/wjwen/p/4274056.html
Copyright © 2011-2022 走看看