Collections.sort()对对象进行排序

来源:互联网 发布:sqlserver 行转列 编辑:程序博客网 时间:2024/05/16 09:16
 今天要对对象排序,平时用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
 
*/

public class ObjectSort {
    
    
//需要排序的对象列表
    ArrayList sortList = new ArrayList();

    
public static void main(String[] args)
    
{
        ObjectSort objSort 
= new ObjectSort();
    
        
//将对象初始化到列表中
        objSort.initArrayList();
        
    }

    
/**
     * 初始化对象到列表中,
     * Collections.sort()可以对它的所有子类进行排序 
     
*/

    
public void 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()方法对对象进行排序
     * 这里是是依据对象里的一个属性进行排序,这里设置升序排列
     
*/

    
public void sortArrayList()
    
{
        
//匿名类来实现Comparator接口的compare方法,以此来排序
        Collections.sort(sortList,new java.util.Comparator(){
            
public int 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;
        }

        
public void setDayTime(String dayTime) {
            
this.dayTime = dayTime;
        }

        
public String getName() {
            
return name;
        }

        
public void setName(String name) {
            
this.name = name;
        }

        
public String getSex() {
            
return sex;
        }

        
public void 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();
        }

    }

}

记录一点学一点啊 !!
原创粉丝点击