黑马程序员技术交流社区

标题: 为什么挂了?没结果 [打印本页]

作者: 黑马-李勇    时间: 2012-7-19 02:26
标题: 为什么挂了?没结果
import java.util.*;

class demo
{
public static void main(String[] args)
{
        TreeSet ts =new TreeSet(new SLC());
        ts.add("abcd");
        ts.add("c");
        ts.add("acb");
        ts.add("ddj");
                System.out.println("m");
        Iterator it=ts.iterator();
        while(it.hasNext())
        {
                System.out.println(it.next());
        }

}
}
class SLC implements Comparator
{
        public int compare(Object o1,Object o2)
        {
                String s1=(String)o1;
                String s2=(String)o2;
                System.out.println("s");

        if(s1.length()>s2.length())
                return 1;
        if(s1.length()==s2.length())
                return 0;
        return -1;


        }       
}


未命名.JPG (10.46 KB, 下载次数: 37)

未命名.JPG

作者: 杨_扬    时间: 2012-7-19 02:35
你到底想要干什么?看的我都凌乱了。。。。
作者: 黑马高明辉    时间: 2012-7-19 02:54
没挂啊,程序不是运行挺不错的么?有什么问题?s
s
s
s
m
c
acb
abcd

作者: 王宝康    时间: 2012-7-19 03:57
  1. package demo;

  2. import java.util.*;

  3. public class ddd {
  4.         public static void main(String[] args) {
  5.                 TreeSet ts = new TreeSet(new SLC());
  6.                 ts.add("abcd");
  7.                 ts.add("c");
  8.                 ts.add("acb");
  9.                 ts.add("ddj");
  10.                 System.out.println("m");
  11.                 Iterator it = ts.iterator();
  12.                 while (it.hasNext()) {
  13.                         System.out.println(it.next());
  14.                 }

  15.         }
  16. }

  17. class SLC implements Comparator {
  18.         public int compare(Object o1, Object o2) {
  19.                 String s1 = (String) o1;
  20.                 String s2 = (String) o2;
  21.                 System.out.println("s");

  22.                 if (s1.length() > s2.length())
  23.                         return 1;
  24.                 if (s1.length() == s2.length())
  25.                         return 0;
  26.                 return -1;

  27.         }
  28. }
复制代码
你的程序,运行截图:
然后是这么一个过程,你新建了一个实现了你自定义比较器的TreeSet,然后调用add()方法时,会调用你的Comparator接口中的compare()方法,你的compare()方法中有输出语句,可以看到,比较了4次,即每加入一个对象,都要进行一次比较,TreeSet中加完数据,然后执行输出m的语句,接下来,取到TreeSet的迭代器对象,循环取出对象。

111.JPG (13.96 KB, 下载次数: 39)

运行截图

运行截图

作者: 黑马-李勇    时间: 2012-7-19 11:34
看来是机子挂了,我的结果就是我上的图,根本没有输出任何东东{:soso_e101:}所以才不解。
作者: 包晗    时间: 2012-7-19 11:39
前几天我也碰到过这种情况  怪的很
作者: 黑马-李勇    时间: 2012-7-19 18:30
包晗 发表于 2012-7-19 11:39
前几天我也碰到过这种情况  怪的很

怎么解决的?
我单位的下午去行了,没问题。
家里的就是上面那样,没有任何输出。郁闷
作者: 包晗    时间: 2012-7-19 20:05
黑马-李勇 发表于 2012-7-19 18:30
怎么解决的?
我单位的下午去行了,没问题。
家里的就是上面那样,没有任何输出。郁闷 ...

重新换个地方存贮




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