黑马程序员技术交流社区

标题: Java中HashMap和TreeMap的区别 [打印本页]

作者: alax    时间: 2014-5-19 18:17
标题: Java中HashMap和TreeMap的区别
Java中HashMap和TreeMap的区别
作者: 莫问纷飞    时间: 2014-5-19 21:59
HashMap:数据结构是哈希表,是不同步的,运行键和值为null
存储到哈希表中的对象,必须覆盖hashCode和euqals方法。建立在哈希表判断元素唯一性的方式。
TreeMap:数据结构是二叉树,是不同步的,可以对集合中的键进行排序。
排序有两种方式:
第一种:让元素自身具备比较性。让元素对象实现Comparable接口,覆盖compareTo方法。
但是,需求中,需要元素的非自然排序时,或者元素本身就不具备自然排序时
第二种:让容器具备比较性。其实就是定义一个比较器,就是实现Comparator接口,
覆盖compare方法。
作者: 张斌    时间: 2014-5-19 22:09
学习一下
作者: 心?=忐§忑]    时间: 2014-5-19 22:49
  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排序,





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2