关于比较器的调用方法 对象java比较器 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在add的时候就使用比较器插入到正确的位置 add的时候会调用compare方法,可以看看jdk源码 package temp;import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;public class MainClass { public static void main(String[] args) throws Exception { TreeSet set=new TreeSet(new MyComparator()); set.add("aw"); set.add("dsui"); set.add("ewib"); set.add("9320"); set.add("aw"); set.add("dsui"); for(Iterator it=set.iterator();it.hasNext();){ System.out.println(it.next()); } }}//创建一个比较器class MyComparator implements Comparator{ @Override public int compare(Object o1, Object o2) { //先按照字符串的长度进行比较,如果长度相同,再按照字符串的字典顺序进行比较 if(o1==null||o2==null){ throw new NullPointerException("对不起,请传两个对象"); } //如果不为空,则判断是不是String对象 if(!(o1 instanceof String) || !(o2 instanceof String)){ throw new ClassCastException("类型错误"); } String s1=(String)o1; String s2=(String)o2; int temp=s1.length()-s2.length(); System.out.println("MyComparator "+o1.toString()+" "+o2.toString()); return temp==0?s1.compareTo(s2):temp; } }调用了呀,结果也是按照长度排序的 哪个大侠帮我看看什么问题哦? 为什么super方法只能放构造器里? Spring 怎么调用存储过程? 关于object的equals方法的问题.请教。。。 着急,求救 java版本的问题 用java做gui开发的真的那么少吗? 请问一个类implements一个接口是 'is a'关系吗? 一个关于窗口的问题 用语句怎样实现 显示/隐藏 JComboBox的下拉框? 谢谢 编译通过,运行时Exception in thread "main" java.lang.NoClassDefFoundError:到底是什么错误??? JAVASE怎么才能学好 关于java的动态代理
package temp;import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class MainClass {
public static void main(String[] args) throws Exception {
TreeSet set=new TreeSet(new MyComparator());
set.add("aw");
set.add("dsui");
set.add("ewib");
set.add("9320");
set.add("aw");
set.add("dsui");
for(Iterator it=set.iterator();it.hasNext();){
System.out.println(it.next());
}
}
}//创建一个比较器
class MyComparator implements Comparator{ @Override
public int compare(Object o1, Object o2) {
//先按照字符串的长度进行比较,如果长度相同,再按照字符串的字典顺序进行比较
if(o1==null||o2==null){
throw new NullPointerException("对不起,请传两个对象");
}
//如果不为空,则判断是不是String对象
if(!(o1 instanceof String) || !(o2 instanceof String)){
throw new ClassCastException("类型错误");
}
String s1=(String)o1;
String s2=(String)o2;
int temp=s1.length()-s2.length();
System.out.println("MyComparator "+o1.toString()+" "+o2.toString());
return temp==0?s1.compareTo(s2):temp;
}
}调用了呀,结果也是按照长度排序的