收藏网站
  设为首页
用户名: 密码: 验证码: 看不清?  站内搜索:  
首  页 Java培训 企业培训 课程介绍 就业情况 人才外包 新闻与文章
新闻与文章
   
   查看文章
   查看小贴士
   查看新闻
Java集合中的几种数据结构(三)
田雪松
发布时间:2008-05-24 13:20:58    浏览次数:137       类别:Java技术
  上一讲介绍了线性结构,下面来看一下树状结构。Java集合中使用的树状结构是二叉树,更具体来说,是红黑树。具体红黑树是什么,读者可以去查阅一下相关的资料。我们这里只做一个简单的说明,红黑树是一颗伪平衡的排序树。那么,什么又是平衡树?什么又是排序树呢?

  先来说明排序树。排序树要求根结点的左子树都要小于根,而左子树都要大于根。这样的好处是在查找时效率比较高,实际上就是通常说的拆半查找。比如,我说有一个数介于1-100之间,那么你猜什么?一定是先猜50,然后根据大小在缩小查找范围。这就是拆半查找。

  再来看平衡树。在排序树中,要求左子树小于根,而右子树大于根。但如果左子树没有,所以的结点都在右子树上,那么就退化成链表了。这样就无法实现拆半查找了。所以排序树最好的状态应该是左、右子树数目差不多。平衡树严格来说就是左、右子树的深度之差的绝对值不能大于1。红黑树不能达到这一点,但左右子树也基本平衡,所以说它是平衡树。

  Java集合中用到了红黑树的包括TreeMap和TreeSet。因为要排序,所以必须要知道两个对象之间谁是大的,谁又是小的。这就需要有一个比较规则。现在你应该明白了,为什么加入TreeSet或TreeMap的元素都要实现Comparable接口,或提供Comparator排序子。因为这样才有可能排序,即自然排序或完全排序。
在线咨询
 武老师: 点击这里给我发消息
 代老师: 点击这里给我发消息
 
电话咨询
 报名热线:010-62320869
电子邮件
 Email:consult@sodii.com
资源下载
  入学测试题
  报名登记单
  Java基础视频
  Struts视频
  Hibernate视频
  Spring视频
  PLSQL视频
  Hibernate讲义
  Spring讲义
乘车路线
1、乘坐47、386、836、753、740、983、656、944、运通109、运通113等,在学院桥东下车,路北白色大楼即是科群大厦;
2、乘坐375、438、386、743、748、398、392等,到北航下车,向北步行200米至学院桥,学院桥东北角即是科群大厦;
3、西站下车,可直接乘坐47路到学院桥东;北京站下车,坐2号线地铁至东直门,换乘375在北航下车

联系电话:010-62320869│QQ:453493255│电子邮件:consult@sodii.com 地址:北京市海淀区学院路30号科群大厦214室
Copyright (C) 2007-01 All Rights Reserved 松迪科技(北京)有限公司
京ICP备  07019912号