当前位置: 代码迷 >> 综合 >> Collections.sort()对对象进行排序
  详细解决方案

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

热度:23   发布时间:2023-12-08 00:08:30.0
今天要对对象排序,平时用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();}}
}

  相关解决方案