import java.util.*;
class CComparator implements Comparator<String>{ @Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
Integer m1=Integer.parseInt(o1);
Integer m2=Integer.parseInt(o2);
if(m1>=m2){
return m1-m2;
}
return m2-m1;
}
}
public class test {
public static void main(){
String id,ctime;
Map<String,String> ha=new HashMap<String,String>();
for(int i=0;i<=11;i++){
Scanner ac=new Scanner(System.in);
System.out.println("请输入ID号:");
id=ac.nextLine();
System.out.println("请输入Ctime:");
ctime=ac.nextLine();
ha.put(id, ctime);
}
Collections.sort(ha,new CComparator());//这儿该怎么写???????????????
System.out.println();
}
}
class CComparator implements Comparator<String>{ @Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
Integer m1=Integer.parseInt(o1);
Integer m2=Integer.parseInt(o2);
if(m1>=m2){
return m1-m2;
}
return m2-m1;
}
}
public class test {
public static void main(){
String id,ctime;
Map<String,String> ha=new HashMap<String,String>();
for(int i=0;i<=11;i++){
Scanner ac=new Scanner(System.in);
System.out.println("请输入ID号:");
id=ac.nextLine();
System.out.println("请输入Ctime:");
ctime=ac.nextLine();
ha.put(id, ctime);
}
Collections.sort(ha,new CComparator());//这儿该怎么写???????????????
System.out.println();
}
}
不是有现成的tree map 吗
@Override
public boolean equals(Object arg0) {
// 加入你要的代码逻辑
/*
* YourObject your = (YourObject) arg0;
* if(your > this){
* return true;
* }
*
* return false;
*
*/
return super.equals(arg0);
} @Override
public int hashCode() {
// TODO Auto-generated method stub
return super.hashCode();
}
要实现一个Comparator你可以这样写:class StudentComparator implements Comparator<Student>{ // 实现比较器
// 因为Object类中本身已经有了equals()方法
public int compare(Student s1,Student s2){
if(s1.equals(s2)){
return 0 ;
}else if(s1.getAge()<s2.getAge()){ // 按年龄比较
return 1 ;
}else{
return -1 ;
}
}
};
Integer m1=Integer.parseInt(o1);
Integer m2=Integer.parseInt(o2);
if(m1>=m2){
return m1-m2;
}
return m2-m1;这样总会返回大于0,我想应该是错的。我想应该会// TODO Auto-generated method stub
Integer m1=Integer.parseInt(o1);
Integer m2=Integer.parseInt(o2);
return m1-m2;
就可以了