A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© alax 中级黑马   /  2014-5-19 18:17  /  977 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java中HashMap和TreeMap的区别

3 个回复

倒序浏览
HashMap:数据结构是哈希表,是不同步的,运行键和值为null
存储到哈希表中的对象,必须覆盖hashCode和euqals方法。建立在哈希表判断元素唯一性的方式。
TreeMap:数据结构是二叉树,是不同步的,可以对集合中的键进行排序。
排序有两种方式:
第一种:让元素自身具备比较性。让元素对象实现Comparable接口,覆盖compareTo方法。
但是,需求中,需要元素的非自然排序时,或者元素本身就不具备自然排序时
第二种:让容器具备比较性。其实就是定义一个比较器,就是实现Comparator接口,
覆盖compare方法。
回复 使用道具 举报
学习一下
回复 使用道具 举报
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.TreeMap;
  4. public class Demo2 {
  5.         public static void main(String args[]){
  6.        Map<String,String> map1 = new TreeMap<String,String>() ; //用TreeSet实例化Set
  7.        map1.put("3", "AAA") ;
  8.        map1.put("4", "EEE") ;
  9.        map1.put("1", "CCC") ;
  10.        map1.put("2", "BBB") ;
  11.        map1.put("2", "BBB") ;
  12.        Map<String,String> map2 = new HashMap<String,String>() ; //用HashSet实例化Set
  13.        map2.put("3", "bbb") ;
  14.        map2.put("2", "bbb") ;
  15.        map2.put("1", "aaa") ;
  16.        map2.put("4", "eee") ;
  17.        map2.put("2", "ccc") ;
  18.        System.out.println("TreeMap-->" + map1);
  19.        System.out.println("HashMap-->" + map2);
  20.     }
  21. }
复制代码

运行结果:
TreeMap-->{1=CCC, 2=BBB, 3=AAA, 4=EEE}
HashMap-->{3=bbb, 2=ccc, 1=aaa, 4=eee}

        从运行结果可以看出,TreeMap和HashMap
               相同点:key值都不允许重复的
               不同点:HashMap无序存放的,是新的操作类;TreeMap可以排序存放的,按key排序,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马