黑马程序员技术交流社区

标题: 你真的了解二叉树吗? [打印本页]

作者: 焚雨成灰    时间: 2014-4-27 15:47
标题: 你真的了解二叉树吗?
本帖最后由 焚雨成灰 于 2014-4-27 22:34 编辑
  1. import java.util.Comparator;
  2. import java.util.Iterator;
  3. import java.util.Set;
  4. import java.util.TreeSet;

  5. /*
  6. * 需求:用TreeSet将这个数组的重复元素去掉{ 8, 9, 8, 7, 6, 6, 4, 4, 3, 8 },并且顺序不能乱
  7. * 我使用了比较器MyComp,如果是重复元素就不存,不是重复元素就存进去,集合内所有元素的顺序是存储顺序
  8. */
  9. public class TreeDemo {
  10.         public static void main(String[] args) {
  11.                 Integer[] array = { 8, 9, 8, 7, 6, 6, 4, 4, 3, 8 };
  12.                 Set<Integer> ts = new TreeSet<Integer>(new MyComp());
  13.                 for (Integer i : array) {
  14.                         ts.add(i);
  15.                 }
  16.                 StringBuilder sb = new StringBuilder("[ ");
  17.                 Iterator<Integer> it = ts.iterator();
  18.                 while (it.hasNext()) {
  19.                         sb.append(it.next() + ", ");
  20.                 }
  21.                 sb.replace(sb.length() - 2, sb.length() - 1, " ]");
  22.                 System.out.println(sb.toString());
  23.                 /*
  24.                  * 结果为[ 8, 9, 7, 6, 4, 3, 8 ] 还有一个重复的
  25.                  */
  26.         }

  27. }

  28. class MyComp implements Comparator<Integer> {
  29.         @Override
  30.         public int compare(Integer o1, Integer o2) {
  31.                 int num = o1.compareTo(o2);               
  32.                 /* 如果不想等就返回1,表示按存放顺序排序 */
  33.                 if (num != 0)
  34.                         return 1;
  35.                 return 0;
  36.         }
  37. }
复制代码


作者: 焚雨成灰    时间: 2014-4-27 16:30
所以说,老师讲的还不全面
作者: 只为你等待    时间: 2014-4-27 16:35
threadId阿尔泰无耳兔委托人
作者: a3330682    时间: 2014-4-27 17:48
比老师其实讲了;二叉树先是比较集合中中间值,返回值为1的话在往后比较;由于你的返回值没有-1;就一直是往后面比较;所以后面那个8根本没有和前面的8作比较;所以重复了;
作者: 焚雨成灰    时间: 2014-4-27 18:04
a3330682 发表于 2014-4-27 17:48
比老师其实讲了;二叉树先是比较集合中中间值,返回值为1的话在往后比较;由于你的返回值没有-1;就一直是 ...

那你再把视频看一遍
作者: doyxy    时间: 2014-4-27 19:06
关注一下




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