public class TreeSetTest { /**
* @param args
*/
public static void main(String[] args) {
TreeSet ts = new TreeSet(new StrLenComparator());
ts.add("a");
ts.add("abc");
ts.add("add");
ts.add("aasss");
ts.add("aadddd");
Iterator it = ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}}class StrLenComparator implements Comparator
{ @Override
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
if(num == 0)
return s1.compareTo(s2);
return num;
}
}class Student
{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name,int age)
{
this.name = name;
this.age =age;
}
}问题1:为什么要在泛型后面加上new StrLenComparator();
问题2:为什么每增加一个元素,他总能调用compare方法????如果不写new StrLenComparator();就不能调用,为什么啊?
* @param args
*/
public static void main(String[] args) {
TreeSet ts = new TreeSet(new StrLenComparator());
ts.add("a");
ts.add("abc");
ts.add("add");
ts.add("aasss");
ts.add("aadddd");
Iterator it = ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}}class StrLenComparator implements Comparator
{ @Override
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
if(num == 0)
return s1.compareTo(s2);
return num;
}
}class Student
{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name,int age)
{
this.name = name;
this.age =age;
}
}问题1:为什么要在泛型后面加上new StrLenComparator();
问题2:为什么每增加一个元素,他总能调用compare方法????如果不写new StrLenComparator();就不能调用,为什么啊?
解决方案 »
- 求助!急!com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。
- 麻烦大家帮我看个需求吧
- 求个正则表达式
- 有关计算数学常数e的一个问题?
- 北京北方新宇信息技术有限公司有了解的吗?
- 新手上路:有段代码调试不出来,请大虾帮忙找错(提示就1个错)
- 请问java中的事件处理机制到底是怎样实现的啊?到底是用的什么语言特性啊?
- JList文本在右边显示
- 为什么import other.*;不包括import other.oth;????????
- 怎么操作没有主键的数据库?
- 给说一下
- 求救,我做了一个发送图片的发送端和接收端,但是可能是因为接收端的一些问题导致不能让JTextPane按路径显示图片,在这里求救各位JAVA高手
public TreeSet(Comparator<? super E> comparator) {
this(new TreeMap<E,Object>(comparator));
}要一个实现Comparator接口的类的实例