/ 以下是我的源代码。其中还有一个实现了Comparable接口的自定义的Car类未给出,
那不影响我的提问*/package
cn.com.csuinfo.Mycollec;import
java.util.Set;import
java.util.TreeSet;public class TestMySort
{public void BubbleSort(TreeSet
set){Car c1;Car
c2;Car c3;Car
c4;c1=set.pollFirst();//将set中的元素一个个取出来,再存入Car数组中c2=set.pollFirst();c3=set.pollFirst();c4=set.pollFirst();Car[]
iArr={c1,c2,c3,c4}; //数组中存放了Car类型的四个对象Car
tmp=null;int len=set.size();for(int
i=0;ifor(int j=0;jif(iArr[j].price
> iArr[j+1].price) {tmp =
iArr[j];iArr[j] = iArr[j + 1];iArr[j +
1]=
tmp;System.out.println("SB");//测试之注意!:程序没执行到此来???}}}for(Car
car:
iArr){System.out.println(car);}}public
static void main(String[] args){TreeSet set1=new
TreeSet();Car car1=new
Car("Ford",164000);Car car2=new
Car("Honda",286000);Car car3=new
Car("Toyota",410000);Car car4=new
Car("Benz",850000);set1.add(car1);set1.add(car2);set1.add(car3);set1.add(car4);System.out.println(”***********************“);new
TestMySort().BubbleSort(set1);}}
这里用到集合的知识了,排序用TreeSet
比如:
这里我们对一个Person对象进行排序,Person对象里面有两个属性,一个是姓名一个是年龄,我们这里按照年龄升序,如果年龄相同就按照姓名排序;
import java.util.*;
public class Test {
public static void main(String[] args) {
TreeSet ts = new TreeSet(new Comparator(){
public int compare(Person p1, Person p2) {
int num = new Integer(p1.getAge()).compareTo(new Integer(p2.getAge()));
if(num==0){
return p1.getName().compareTo(p2.getName());
}
return num;
}
});
ts.add(new Person("zhangsan",20));
ts.add(new Person("zhangsan",30));
ts.add(new Person("lisi",10));
ts.add(new Person("wangwu",40));
for(Person p:ts){
System.out.println(p.getName()+"::"+p.getAge());
}
}
}