我个人觉得看例子说话比较实际点,希望看的人能从例子中获得收获!
[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]
[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]