黑马程序员技术交流社区
标题:
谁能帮我看看我这个程序哪里有问题呀,,关于TreeSet集合
[打印本页]
作者:
汉谟拉比
时间:
2014-7-7 07:33
标题:
谁能帮我看看我这个程序哪里有问题呀,,关于TreeSet集合
import java.util.*;
class Person7
{
private String name;
private int age;
Person7(String name,int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class MyCompare7 implements Comparator
{
public int compare(Object o1,Object o2)
{
Person7 p1 = (Person7)o1;
Person7 p2 = (Person7)o2;
int num = p1.getName().compareTo(p2.getName());
if(num==0)
return new Integer (p1.getAge()).compareTo(new Integer (p2.getAge()));
else
return num;
}
}
class TreeSetDemo7
{
public static void main(String[] args)
{
TreeSet t = new TreeSet(new MyCompare7());
t.add(new Person7("a1",12));
t.add(new Person7("a2",13));
t.add(new Person7("a3",14));
t.add(new Person7("a3",12));
t.add(new Person7("a1",12));
Iterator i = t.iterator();
while(i.hasNext())
{
Person7 p = (Person7)i.next();
System.out.println(p.getName()+"..."+p.getAge());
}
}
}
开始还能运行,,后来不知道怎么就不能运行了,,大家看看,麻烦了哈
TreeSetDemo7.java:20: 错误: 此处需要接口
作者:
汉谟拉比
时间:
2014-7-7 08:07
import java.util.*;
class Bijiao implements Comparator
{
public int compare(Object o1,Object o2)
{
String s1 = (String)o1;
String s2 = (String)o2;
if(s1.length()==s2.length())
return s1.compareTo(s2);
else if(s1.length()<s2.length())
return 1;
else
return -1;
}
}
class TreeSetDemo8
{
public static void main(String[] args)
{
TreeSet t = new TreeSet(new Bijiao());
t.add("abc");
t.add("wde");
t.add("huji");
t.add("rgsdf");
t.add("ji");
Iterator i = t.iterator();
while(i.hasNext())
{
System.out.println(i.next());
}
}
}
作者:
on-on
时间:
2014-7-7 08:12
代码没问题,我粘贴过来后,将你的TreeSetDemo7类改成了public,文件名改成了TreeSetDemo7,可以正常运行
作者:
汉谟拉比
时间:
2014-7-7 08:14
报的都是一样的错误,,我明明已经实现了接口,为什么还会报错说需要接口
作者:
idency
时间:
2014-7-7 08:15
本帖最后由 idency 于 2014-7-7 08:16 编辑
在我这边运行没有错误!!!
不过楼主的compare方法的返回值可以稍微修改下!
int num = p1.getName().compareTo(p2.getName());
return num == 0 ? p1.getAge() - p2.getAge() : num;
另外楼主可以试着应用一下泛型,那样你的传进compare里面的值就不用强转了
作者:
m529031854
时间:
2014-7-7 09:40
代码复制过来,就改了下main方法所在的类名和文件名一样就OK啦,没改之前不行,无措但是运行不了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2