java.lang.Comparable应用1:比较和排序

我个人觉得看例子说话比较实际点,希望看的人能从例子中获得收获!
[code]import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
/**
* 这个是jdk1.4的版本,如果在1.5中会用得更加简单,这里我就不在多写
* 用于基于LogoOrde的排序,根据logoOrder_displayOrder排序asc,再根据logoOrder_Id排序desc
* @author huanglq
*
*/
public class LogoOrder implements Comparable{

int logoOrder_Id;

int logoOrder_displayOrder;


public LogoOrder(int logoOder_displayOrder,int logoOrder_Id) {
super();
this.logoOrder_displayOrder = logoOder_displayOrder;
this.logoOrder_Id = logoOrder_Id;

}

public int getLogoOrder_displayOder() {
return logoOrder_displayOrder;
}

public void setLogoOrder_displayOder(int logoOder_displayOrder) {
this.logoOrder_displayOrder = logoOder_displayOrder;
}

public int getLogoOrder_Id() {
return logoOrder_Id;
}

public void setLogoOrder_Id(int logoOrder_Id) {
this.logoOrder_Id = logoOrder_Id;
}

public int compareTo(Object o) {
int order=this.logoOrder_displayOrder-((LogoOrder)o).logoOrder_displayOrder;
if(order!=0){
return order;
}else{
return ((LogoOrder)o).logoOrder_Id-this.logoOrder_Id;
}
}

public String toString(){
return "logoOrder_displayOder:"+logoOrder_displayOrder+" logoOder_Id:"+logoOrder_Id;
}

public static void main(String[] args){
Map map2=new TreeMap();
LogoOrder lo1=new LogoOrder(1,2);
map2.put(lo1, "two");
map2.put(new LogoOrder(1,1), "one");
map2.put(new LogoOrder(2,1), "three");
map2.put(new LogoOrder(2,1), "THREE@");
Iterator it2=map2.keySet().iterator();
while(it2.hasNext()){
System.out.println(it2.next());
}
System.out.println(map2.get(new LogoOrder(2,1)));
}

}
/**
输出结果:
logoOrder_displayOder:1 logoOder_Id:2
logoOrder_displayOder:1 logoOder_Id:1
logoOrder_displayOder:2 logoOder_Id:1
THREE@ ---说明Map如果加入了一样的key,则这个key值的value会覆盖掉原来的value
*/[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值