在将列表添加到gridModel之前排序Object类的列表

时间:2011-09-12 07:46:30

标签: java java-ee

代码如下.........

private List<EmployeeAllRec> listg;
private List<Employee> list;
private List<Employee> gridModel;
private Map<String, String> json;

 public String showAllRecord() {

        records = 30;
        rows = 10;
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction transaction = null;
        EmployeeAllRec rs = null;
        try {
            transaction = session.beginTransaction();
            listg = new ArrayList();
            List emp = session.createQuery("from Employee e").list();

            int c=0;
            //code for adding the data into the list
            for (Iterator iterator = emp.iterator(); iterator.hasNext();) {
                Employee e1 = (Employee) iterator.next();
                System.out.println(e1.getName());
                rs = new EmployeeAllRec();

                rs.setName(e1.getName());
                rs.setEmail(e1.getEmail());
                rs.setDob(e1.getDob());
                rs.setAddress(e1.getAddress());
                rs.setGender(e1.getGender());
                rs.setAge(e1.getAge());
                rs.setCountry(e1.getCountry());
                rs.setContact(e1.getContact());
                rs.setWebsite(e1.getWebsite());
                System.out.println("&&&&&&&&&&&&&&&&---i m on it " + rs.getName());
                listg.add(rs);
           }

           setGridModel(listg);

           // some stuff

我的问题是我需要先将“listg”变量按降序排序,然后再将其添加到变量setGridModel ....

2 个答案:

答案 0 :(得分:1)

由于添加到listg中的对象是从DB中获取的,我建议通过HQL查询对它进行排序.DB排序比内存排序(使用比较器)更快,在这种情况下,您可以应用方法。

因此,HQL查询看起来像“FROM Employee e ORDER BY ... DESC”

答案 1 :(得分:0)

  1. 在对象上定义compareTo,按降序对它们进行排序。
  2. 填充后调用Collections.sort(listg)。
  3. PS:如果可能,请考虑在您的馆藏中使用泛型。