在以前的程序中直接用两个FOR循环对里面值进行比较,这样确实可以做到排序。但是性能特别差。现在找到一个更好的方法可以进行List中存放的对象进行排序。Collections.sort(list,Collections.Collections.reverseOrder()) .
下面是实现排序的代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;
public class Test {
public static void main(String args[]){
long time = System.currentTimeMillis();
Vector vec = new Vector();
for(int i=2000;i>-1;i--){
SortVector vect = new SortVector();
vect.add(Integer.valueOf(i));
vec.add(vect);
}
List list = new ArrayList();
Collections.sort(vec,Collections.reverseOrder());
System.out.println(System.currentTimeMillis()-time);
long timeTwo = System.currentTimeMillis();
for(int i=0;i<vec.size();i++)
{
Vector vect = (Vector)vec.get(i);
System.out.println("vec="+vect.get(0));
}
System.out.println(System.currentTimeMillis()-timeTwo);
}
}
这个类需要实现Comparable接口
class SortVector extends Vector implements Comparable
{
public int compareTo(Object arg0) {
SortVector sort = (SortVector)arg0;
return this.get(0).toString().compareTo(sort.get(0).toString());
}
}