TreeMap 和 HashMap 用法

TreeMap和HashMap的不同之处:

TreeMap和HashMap 用法大致相同,但实际需求中,我们需要把一些数据进行排序;  

为了处理排序的问题: 
    1. 对于一些简单的排序,如:数字,英文字母等 
        TreeMap hm = new TreeMap(new Comparator() { 
               public int compare(Object o1, Object o2) { 
                      //如果有空值,直接返回0 
                      if (o1 == null || o2 == null) 
                          return 0;  
                     
                     return String.valueOf(o1).compareTo(String.valueOf(o2)); 
               } 
      }); 
      备注: 
        compareTo(String str) :是String 提供的一个方法,如果参数字符串等于此字符串, 
                  则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值; 
                  如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。 

        int compare(T o1,T o2):随第一个参数小于、等于或大于第二个参数而分别返回负整数、 
                                    零或正整数。 
    

  2.对于处理有中文排序的问题 
     TreeMap hm = new TreeMap(new Comparator() { 
          public int compare(Object o1, Object o2) { 
               //如果有空值,直接返回0 
                if (o1 == null || o2 == null) 
                      return 0;  
                     
              CollationKey ck1 = collator.getCollationKey(String.valueOf(o1)); 
              CollationKey ck2 = collator.getCollationKey(String.valueOf(o2)); 
              return ck1.compareTo(ck2);               
        } 
      }); 

    备注: CollationKey:CollationKey 表示遵守特定 Collator 对象规则的 String。 
            比较两个CollationKey 将返回它们所表示的 String 的相对顺序。使用 CollationKey 
          来比较 String 通常比使用 Collator.compare 更快。因此,当必须多次比较 String 时 
           (例如,对一个 String 列表进行排序),使用 CollationKey 会更高效。

你可能感兴趣的:(TreeMap 和 HashMap 用法)