数据库中的存储情况如下:id  zhangpiao
001 CJ3R1100
002 CJ3R1101
003 CJ3R1102
004 CJ3R1105web页面的情况是:四个checkbox框,java中接收到的值是数据库中的zhangpiao字段的值。如:
页面选择了CJ3R1105,CJ3R1100帐票,则将接收到的CJ3R1105,CJ3R1100放到arraylist里,现在的问题是如何将
arraylist排序,使得它按数据库中的id升序进行排列。实际有很多帐票(这里只假定了四个,而且用户选择几个checkbox也不一定,有可能选一个,有可能都选,还有可能选其中的几个)
请给出算法,谢谢。

解决方案 »

  1.   

        ArrayList al = new ArrayList();
        HashMap hp = new HashMap();
        hp.put("id", "001");
        hp.put("zhangpiao", "CJ3R1100");
        al.add(hp);
        hp = new HashMap();
        hp.put("id", "003");
        hp.put("zhangpiao", "CJ3R1102");
        al.add(hp);
        hp = new HashMap();
        hp.put("id", "002");
        hp.put("zhangpiao", "CJ3R1101");
        al.add(hp);
        hp = new HashMap();
        hp.put("id", "004");
        hp.put("zhangpiao", "CJ3R1105");
        al.add(hp);
        
        System.out.println(al);
        Object[] obj = al.toArray();
        Arrays.sort(obj,new Comparator(){
         public int compare(Object o1, Object o2) {
         return ((HashMap)o1).get("id").toString().compareTo(((HashMap)o2).get("id"));
         }
        });
        System.out.println(Arrays.asList(obj));
        
      

  2.   

    你的帐票应该有一个类,比如
    class ZhangPiao implements Comparable{
       private String id;
       private String zhangpiao;
       //get,set方法略   //实现Comparable接口的方法
       public int compareTo(Object arg0) {
    ZhangPiao obj = (ZhangPiao )arg0;
                    return id.compartTo(obj.getId);
    }
    }然后你的类就是可排序的了
    用Collections.sort()方法就可以排你的List了
      

  3.   

    恩,最简单的就是Collections.sort()
    麻烦的也有