import java.util.*;
public class EmployeeTest {
public static void interTest(List li)
{
Iterator in=li.iterator();
while(in.hasNext())
{
System.out.println(in.next());
}
}
public static void main(String[]args)
{
List<Employeer> a=new ArrayList<Employeer>();
a.add(new Employeer(1003,7000));
a.add(new Employeer(1001,4000));
a.add(new Employeer(1002,5000));
a.add(new Employeer(1002,100000));
a.add(new Employeer(1004,10000));
a.add(new Employeer(1004,9000));
//Collections.sort(a,new Employeer.EmployBoy());
Collections.sort(a);
// Collections.sort(a,Collections.reverseOrder());
interTest(a);
}
}
class Employeer implements Comparable<Employeer>
{
private int id;
private double salary;
public Employeer(int id,double salary)
{
this.id=id;
this.salary=salary;
}
public int compareTo(Employeer em)
{
return id>em.id?1:(id==em.id?0:-1);
}
public String toString()
{
return getClass().getName()+"[id="+id+",salary="+salary+"]";
}
/*static class EmployBoy implements Comparator<Employeer>
{
public int compare(Employeer eb1,Employeer eb2)
{
int result=eb1.id>eb2.id?1:(eb1.id==eb2.id?0:-1);
if(result==0)
result=eb1.salary>eb2.salary?1:(eb1.salary==eb2.salary?0:-1);
return result;
}
}*/
}
结果为:
Employeer[id=1001,salary=4000.0]
Employeer[id=1002,salary=5000.0]
Employeer[id=1002,salary=100000.0]
Employeer[id=1003,salary=7000.0]
Employeer[id=1004,salary=10000.0]
Employeer[id=1004,salary=9000.0]而逆序结果为:Employeer[id=1004,salary=10000.0]
Employeer[id=1004,salary=9000.0]
Employeer[id=1003,salary=7000.0]
Employeer[id=1002,salary=5000.0]
Employeer[id=1002,salary=100000.0]
Employeer[id=1001,salary=4000.0]为什么逆序第一个不是1004,9000:请教?
解决方案 »
- 一句代码,程序运行效率增加了400倍,各位大神给看看
- java读写锁问题(ReentrantReadWriteLock)
- 三目运算符问题
- 论回帖与结帖
- 一个很独特的问题,请高手解决.
- 急迫求现例:按下UI1中的某button可进入UI2,在UI2中按下ESC可返回UI1的例子!
- 如何检测一个字符串只是数字,二十六个字母(大小写皆可)的组合;java类库有这个函数吗?
- 做一个真正的非方形BUTTON,用UI行不行,还是从AbstractButton继承,或者更低层的类继承?
- 一个基础的问题,怎样计算交互和?
- 在嵌套语句块中局部变量的初始化问题!
- 线程的挂起与唤醒的问题
- Java学习者的等待........大家来帮忙,期待您尽快的回复!!!
Collections.reverse(a);
interTest(a);
{
if(id<em.id)
return -1;
else if(id>em.id)
return 1;
else //id 相等时
{
if(salary<em.salary)
return -1;
if(salary>em.salary)
return 1;
return 0;
}
}
compareTo ()方法这样应该没问题了,个人观点,仅供参考。