如题,小弟近日遇到这个难题,望高人给予答复.不胜感激假如说我现在创建了如下列表ArrayList list = new ArrayList();HashMap record1 = new HashMap();
record1.put("A",1);
record1.put("B",2);
record1.put("C",3);
HashMap record2 = new HashMap();
record1.put("A",4);
record1.put("B",5);
record1.put("C",6);
HashMap record3 = new HashMap();
record1.put("A",7);
record1.put("B",8);
record1.put("C",9);
请问假如我想对这个列表中的A列进行排序该如何操作.谢谢

解决方案 »

  1.   

    可以的。自己写个内部类,然后重写 compare :
    class MyComparator implements Comparator {
         public int compare(Object obj1, Object obj2) {
      

  2.   

    直接对A列比较不就是了么不懂lz的意思...public int compare(Map obj1, Map obj2) {
       if(obj1.get("A")>obj2.get("A"))return 1;
       ......
    }
      

  3.   

    楼住的意思应该是把HashMap加到List里去,然后对List基于A排序,二楼说的差不多了,可以这样去做.
    public class HashMapDecorator extends HashMap implements Comparator {
    private HashMap map;
    public HashMapDecorator(HashMap map){
    this.map=map;
    }
    实现
     public int compare(Object obj1, Object obj2) {
    .............
    比较的时候根据A就可以了
    }
    }
    利用Decorator模式就可以了
      

  4.   

    引用:
    public class HashMapDecorator extends HashMap implements Comparator {
    private HashMap map;
    ——————————————————————————————————————
    这算是继承还是聚合?
      

  5.   

    两者都有,去看看Decorator模式吧
      

  6.   

    去看看API里的俩个常用接口里的(Comparable, Comparator)方法,用来对collection类型元素进行排序的.
      

  7.   

    重写  Comparator  。