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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 官仁杰 于 2012-10-21 00:27 编辑

感觉只是一个实现了顺序的set
二叉树不是有子节点,先序遍历,后序遍历啥的

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
TreeSet  虽然打印顺序和存入顺序不一致。 当时他本事是会有自己默认的排序方式的。
回复 使用道具 举报
TreeSet:可以对Set集合中的元素进行排序。
    底层数据结构是二叉树。
    保证元素唯一性的依据:
    compareTo方法return 0.

    TreeSet排序的第一种方式:让元素自身具备比较性。
    元素需要实现Comparable接口,覆盖compareTo方法。
    也种方式也成为元素的自然顺序,或者叫做默认顺序。

    TreeSet的第二种排序方式。
    当元素自身不具备比较性时,或者具备的比较性不是所需要的。
    这时就需要让集合自身具备比较性。
    在集合初始化时,就有了比较方式。
回复 使用道具 举报
TreeSet排序是采用的是中序排序,慢慢体会其底层数据结构你就会感觉到它的特性所在了。
回复 使用道具 举报
什么都不说了直接上代码
TreeSet<user> sortset = new TreeSet<test2.user>(new Comparator<user>() {
                        @Override
                        public int compare(user o1, user o2) {
                                if (o1.value < o2.value) {
                                        return -1;
                                } else if (o1.value > o2.value) {
                                        return 1;
                                } else {
                                        return o1.name.compareTo(o2.name);
                                }
                        }
                });
                Iterator iterator = map.keySet().iterator();
                while (iterator.hasNext()) {
                        String key = (String) iterator.next();
                        int value = (Integer) map.get(key);
                        user u = new user(key, value);
                        sortset.add(u);
                }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马