黑马程序员技术交流社区
标题:
感觉TreeSet的二叉树特性根本感觉不出来啊
[打印本页]
作者:
官仁杰
时间:
2012-10-20 17:40
标题:
感觉TreeSet的二叉树特性根本感觉不出来啊
本帖最后由 官仁杰 于 2012-10-21 00:27 编辑
感觉只是一个实现了顺序的set
二叉树不是有子节点,先序遍历,后序遍历啥的
作者:
给生活加点料
时间:
2012-10-20 18:30
TreeSet 虽然打印顺序和存入顺序不一致。 当时他本事是会有自己默认的排序方式的。
作者:
sun~~
时间:
2012-10-20 19:42
TreeSet:可以对Set集合中的元素进行排序。
底层数据结构是二叉树。
保证元素唯一性的依据:
compareTo方法return 0.
TreeSet排序的第一种方式:让元素自身具备比较性。
元素需要实现Comparable接口,覆盖compareTo方法。
也种方式也成为元素的自然顺序,或者叫做默认顺序。
TreeSet的第二种排序方式。
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性。
在集合初始化时,就有了比较方式。
作者:
汪小照
时间:
2012-10-20 22:40
TreeSet排序是采用的是中序排序,慢慢体会其底层数据结构你就会感觉到它的特性所在了。
作者:
唐进
时间:
2012-10-21 00:58
什么都不说了直接上代码
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);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2