不知道怎么描述,例如如下的例子:
   List familylist=new ArrayList();   FamilyModel family1=new FamilyModel();
   family1.setId="01";
   family1.setName="老大";
   family1.setChiName="老大儿子1";
   familylist.add(family1);   FamilyModel family2=new FamilyModel();
   family2.setId="02";
   family2.setName="老二";
   family2.setChiName="老二儿子1";
   familylist.add(family2);
  
   FamilyModel family3=new FamilyModel();
   family3.setId="03";
   family3.setName="老大";
   family3.setChiName="老大儿子2";
   familylist.add(family3);   ……
这样可以得到一个放着FamilyModel的familylist,但我希望这个familylist能按FamilyModel里的Name来排序(最起码要能把“老大”的FamilyModel集中放在一起,“老二”的也放在一起)不知道应该怎样做比较简便呢?

解决方案 »

  1.   

    例子:
    http://dev.csdn.net/article/31/31142.shtm
      

  2.   

    Collections.sort(familylist, new Comparator<FamilyModel>() {
        public int compare(FamilyModel o1, FamilyModel o2) {
          if(o1.getName().compareTo(o2.getName()) != 0){
            return o1.getName().compareTo(o2.getName());
          }else{
            return o1.getChiName().compareTo(o2.getChiName());
          }
        }
      });
      

  3.   

    谢谢。我照着bao110908兄的方法用到项目中,结果出了这个错,可能是什么原因导致的?javax.servlet.ServletException
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    com.ywbase.comm.service.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
    root cause java.lang.NullPointerException
    com.report.action.RepGovProPlanAction$1.compare(RepGovProPlanAction.java:262)
    com.report.action.RepGovProPlanAction$1.compare(RepGovProPlanAction.java:1)
    java.util.Arrays.mergeSort(Arrays.java:1284)
    java.util.Arrays.mergeSort(Arrays.java:1295)
    java.util.Arrays.sort(Arrays.java:1223)
    java.util.Collections.sort(Collections.java:159)
    com.report.action.RepGovProPlanAction.ListReportlist(RepGovProPlanAction.java:260)
    com.report.action.RepGovProPlanAction.findXiangMuJiHua(RepGovProPlanAction.java:147)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:585)
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    com.ywbase.comm.service.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
      

  4.   

    那段代码我测试过的没有问题。这个问题是在 SetCharacterEncodingFilter.doFilter 方法里产生了空指针,检查一下代码。
      

  5.   

    非常感谢!!我找到原因了,原来我用来排序的那个字段在数据库里有两条记录为null,于是对比的时候就出错了。换了个没有null的字段来排序就可以了。
      

  6.   

    为什么不将ChiName类型设为String[]呢?