1. 程式人生 > >Collections.sort()對物件進行排序

Collections.sort()對物件進行排序

 今天要對物件排序,平時用Map的時候很多本來要用treeMap來排序的,但是看到Collections.sort()也可以對物件排序所以就做個小測試記錄下 ,以下是原始碼 :
package cn.gumeng.spring.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Random;
/**
 * 物件排序測試類
 * 
@author Administrator
 * 
@since 2008-03-01
 
*/

publicclass ObjectSort {
    
    
//需要排序的物件列表
    ArrayList sortList =new ArrayList();

    
publicstaticvoid
 main(String[] args)
    
{
        ObjectSort objSort 
=new ObjectSort();
    
        
//將物件初始化到列表中
        objSort.initArrayList();
        
    }

    
/**
     * 初始化物件到列表中,
     * Collections.sort()可以對它的所有子類進行排序 
     
*/

    
publicvoid initArrayList()
    
{
        Random random 
=new Random();
        
        
for(int i =0;i <6;i++)
        
{
            Obj obj 
=new Obj();
            obj.setName(
"大王"+i);
            obj.setSex(
"");
            
int value = random.nextInt(100-2*i-1);
            obj.setDayTime(String.valueOf(value)
+"00000");
            sortList.add(obj);
            System.out.println(obj.getDayTime());
        }

        sortArrayList();
    }

    
/**
     * 呼叫Collections.sort()方法對物件進行排序
     * 這裡是是依據物件裡的一個屬性進行排序,這裡設定升序排列
     
*/

    
publicvoid sortArrayList()
    
{
        
//匿名類來實現Comparator介面的compare方法,以此來排序
        Collections.sort(sortList,new java.util.Comparator(){
            
publicint compare(Object object1, Object object2){
                Obj obj1 
= (Obj)object1;
                Obj obj2 
= (Obj)object2;
                
return obj1.getDayTime().compareTo(obj2.getDayTime());
            }

        }
);
        
        
//輸出排序後的列表
for(int i =0 ;i < sortList.size();i++)
        
{
            System.out.println(((Obj)sortList.get(i)).toString());
        }

    }

    
    
/**
     * 內部類用來作為排序物件
     * 
@author Administrator
     * 
@since 2008-03-01
     
*/

    
class Obj{
        
        
private String name;
        
private String sex;
        
private String dayTime;
        
public String getDayTime() {
            
return dayTime;
        }

        
publicvoid setDayTime(String dayTime) {
            
this.dayTime = dayTime;
        }

        
public String getName() {
            
return name;
        }

        
publicvoid setName(String name) {
            
this.name = name;
        }

        
public String getSex() {
            
return sex;
        }

        
publicvoid setSex(String sex) {
            
this.sex = sex;
        }

        
public String toString() {
            StringBuffer buf 
=new StringBuffer();
            buf.append(
"[");
            buf.append(
this.getDayTime()+"_"+this.getName()+"_"+this.getSex());
            buf.append(
"]");
            
return buf.toString();
        }

    }

}

記錄一點學一點啊 !!