黑马程序员技术交流社区

标题: TreeSet排序问题 [打印本页]

作者: qqhao01    时间: 2013-9-12 09:27
标题: TreeSet排序问题
本帖最后由 qqhao01 于 2013-9-12 21:00 编辑

二叉树这块有点没太懂
作者: 赵凯    时间: 2013-9-12 10:04

TreeSet集合自己可以具备比较性,在new TreeSet对象的时候,构造方法中,传递一个比较器对象
    |-- 这个比较器,必须实现Comparator接口,在TreeSet构造方法中,传递的参数是Comparator接口的
        实现类对象
  |-- 用TreeSet,其实在用比较器
     |-- 存储的对象自己具备比较性,对象实现Comparable接口 ,这是对象本身的比较器
     |-- TreeSet自己具备比较性,自定义比较器类,实现Comarator接口 ,这是自定义比较器

作者: 杨晓燕    时间: 2013-9-12 10:12
记住小往左走,大往右走,就可以了
大小顺序,从左下方开始,按照左中右的顺序,就是从小到大

1.png (1.65 KB, 下载次数: 19)

1.png

作者: 陶智第    时间: 2013-9-12 11:10
TreeSet底层实现的是二叉树数据结构
当使用TreeSet对集合进行排序时,TreeSet首先找到集合中的中间值作为根节点
然后再对整个集合进行遍历
在遍历过程中,如果当前元素比根节点小,就放在根节点的左边。否则,则放在右边。并且它也作为下一次遍历过程中的节点
然后再重复上面的操作
作者: 单曲循环    时间: 2013-9-12 13:27
Set有众多实现类,而HashSet和TreeSet是最常用的两个.
1.通过TreeSet(Comparator<? super E> comparator) 构造方法指定TreeSet的比较器进行排序;
2.使用TreeSet()构造方法,并对需要添加到set集合中的元素实现Comparable接口进行排序;

作者: mo﹎雲℡    时间: 2013-9-12 13:53
如果你不是学计算机专业的,那么对于二叉树肯定有不理解的地方,其实是很正常的。
先来讲讲“树”:
树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序时,可用树表示源程序的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。
树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前驱。以下具体地给出树的定义及树的数据结构表示。
如果不理解,举个列子吧。
算了想了半天没有想到一个好例子,就将一个网络的例子吧:
一台服务器,包含很多小的服务器,然后小的服务器包含很多个像你一个上网的用户,画出一个结构图来,就是树的结构图。
二叉树呢?就是每个服务器下面最多只能有2个小服务器,可以有1个,也可以没有。
这样说,你是否可以明白呢?
大家还有好的例子的话,也可以提出来,供这位同学理解。




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