1. 程式人生 > >java排序函式Arrays.sort對類排序

java排序函式Arrays.sort對類排序

  在使用排序函式的時候,都要考慮一個排序的方式,尤其是自定義變數,有多個屬性,是以哪一個屬性進行排序。

在C++中可以定義一個結構體,再使用algorithm庫中的sort對變數陣列進行排序,內部使用的是快速排序,前面介紹過快排的過程。同樣java中也有個sort,同樣可以設定排序方法。

import java.util.Arrays;
public class Main {

    public class goods{
        public int v1,v2,v3;
        public void insert(int a1,int a2,int a3){
            v1=a1;
            v2=a2;
            v3=a3;
        }
    }

    goods[] gg=new goods[10];
    public static void main(String[] args){
        for(int j=0;j<10;j++)
        {
            gg[j]= new Main().new goods();
            int v1=j;
            int v3=j%2==0?j+5:j-5;
            int v2=v3+j/2;
            gg[j].insert(v1,v2,v3);
        }

        Arrays.sort(gg,new Comparator<goods>(){
            @Override
            public int compare(goods o1, goods o2){
                return o2.v2 - o1.v2;
            }
        });

        for(int j=0;j<10;j++)
            System.out.println(gg[j].v1+" "+gg[j].v2+" "+gg[j].v3);
    }
}