import java.util.*;
public class Example13_6
{ public static void main(String args[])
{ TreeSet mytree=new TreeSet();
mytree.add("boy");
mytree.add("zoo");
mytree.add("apple");
mytree.add("girl");
Iterator te=mytree.iterator();
while(te.hasNext())
System.out.println(""+te.next());
}
}
结果:apple
boy
girl
zoo
这样的结果只能说明TreeSet既不是队列存储,也不是栈存储,只能是是树形存储!但是我就是想不明白它是怎么存储,怎么通过迭代器遍历才会打印出这个结果?
public class Example13_6
{ public static void main(String args[])
{ TreeSet mytree=new TreeSet();
mytree.add("boy");
mytree.add("zoo");
mytree.add("apple");
mytree.add("girl");
Iterator te=mytree.iterator();
while(te.hasNext())
System.out.println(""+te.next());
}
}
结果:apple
boy
girl
zoo
这样的结果只能说明TreeSet既不是队列存储,也不是栈存储,只能是是树形存储!但是我就是想不明白它是怎么存储,怎么通过迭代器遍历才会打印出这个结果?
实际存treemap里面,可以去看源代码
2.使用实现Comparator接口的方法排序
从代码看,是标准的二叉排序树的插入元素的算法,fixAfterInsertion这个方法我估计是做平衡的。遍历整个树时,应该用前序遍历。
TreeSet.contains(xxx);
TreeSet.add(xxx);
a最小所以先被输出,z最大最后输出
如果
mytree.add("1");
mytree.add("2");
mytree.add("3");
mytree.add("4");
打印出的是
1
2
3
4
这问题还得我自己解决~~~结帖能把20都给我自己么?哈哈~~