Collections.sort()對物件進行排序
阿新 • • 發佈:2019-01-27
今天要對物件排序,平時用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();
}
}
}
記錄一點學一點啊 !!
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
{
ObjectSort objSort =new ObjectSort();
//將物件初始化到列表中
objSort.initArrayList();
}
/**
* 初始化物件到列表中,
* Collections.sort()可以對它的所有子類進行排序
*/
publicvoid initArrayList()
{
Random random =new Random();
{
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();
}
}
}
記錄一點學一點啊 !!