Collections.sort多列排序

tianfalp 2007-11-15 01:53:35
我进行排序时结果只对ID列进行排序,而不对TYPE进行排序,我想要的结果是先按TYPE进行排序,然后在对TYPE进行排序的基础上在按ID进行排序.也就是实现多列排序.请问我下面这段代码应该怎么修改以实现多列排序?
package collectionssort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestSort {

public static void main(String args[]){
List aList = new ArrayList();
for(int i=0;i<3;i++){
Map aMap = new HashMap();
aMap.put("ID","0"+(i+1));
aMap.put("TYPE","ABC"+i);
aList.add(aMap);
}
for(int i=0;i<3;i++){
Map aMap = new HashMap();
aMap.put("ID","0"+(i+1));
aMap.put("TYPE","EFG"+i);
aList.add(aMap);
}
for(int i=0;i<3;i++){
Map aMap = new HashMap();
aMap.put("ID","0"+(i+1));
aMap.put("TYPE","ABD"+i);
aList.add(aMap);
}
for(int i=0;i<9;i++){
System.out.println(aList.get(i));
}
Collections.sort(aList,new MyComparator());
System.out.println("排序后的数据为:");
for(int i=0;i<9;i++){
System.out.println(aList.get(i));
}
}


}

class MyComparator implements Comparator{
public MyComparator(){
super();
}

public int compare(Object o1, Object o2) {
Map mapA =(Map)o1;
Map mapB =(Map)o2;

String idA=(String)mapA.get("ID");
String idB=(String)mapB.get("ID");
return idA.compareTo(idB);
}
}
...全文
404 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yztommyhc 2007-11-15
  • 打赏
  • 举报
回复
public static void sort(List list, Comparator c)
再去实现这个Comparator

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧