您的位置:首页 > 其它

利用Comparable进行排序

2007-08-30 15:23 281 查看
当使用集合(Collenctions)的时候 的时候,可以使用Comparable进行排序。这种方式在要排序方法比较复杂的时候使用,比如需要根据多个字段以及复杂的条件。

我们只需要将集合中的对象实现Comparable接口并覆盖compareTo方法即可。

下面是我刚写完的一个类及简单的使用掩饰,用的是List,其实用HashSet等也是可以的。

package com.hf.commonAMDQ.layout.impl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class LayoutGroup implements Comparable {
private int index=0;

public LayoutGroup(int index) {
this.index=index;

}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
LayoutGroup a=new LayoutGroup(1);
LayoutGroup b=new LayoutGroup(3);
LayoutGroup c=new LayoutGroup(2);
List<LayoutGroup> list=new ArrayList<LayoutGroup>();
list.add(a);
list.add(b);
list.add(c);
for(int i=0;i<list.size();i++){
System.out.println(""+list.get(i).index);

}
Collections.sort(list);
for(int i=0;i<list.size();i++){
System.out.println(""+list.get(i).index);

}
}

public int compareTo(Object o) {
LayoutGroup other=(LayoutGroup)o;
/*根据index来进行排序*/
if(this.index>other.index){
return 1;
}
if(this.index<other.index){
return -1;
}

return 0;
}
public boolean equals(Object o){

if(this==o){
return true;
}
if(!(o instanceof LayoutGroup )){
return false;
}
LayoutGroup other=(LayoutGroup)o;
if(this.index>other.index){
return true;
}
return false;

}

public int hashCode(){
int result;
result=index;
return result*29;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: