Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getCallUv() - o1.getCallUv(); } }); for (int i = 0; i < subSize; i++) { DaogouDaily daogou = (DaogouDaily) list.get(i); cateName[5][i] = daogou.getCity(); list6.add(daogou.getCallUv()); }
默认从小到大
目前是从大到小
List<ClientKernelResult> ll = new ArrayList<ClientKernelResult>(result.values()); Collections.sort(ll, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getCreateTime().compareTo(o1.getCreateTime()); } });
/** * 根据pv倒序排序 * * @param list */ private void sortDescByPv(List<DaogouDaily> list) { Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getPv() - o1.getPv(); } }); }
CollectionUtils.addAll(sortLoupanList, new Object[list.size()]); Collections.copy(sortLoupanList, list); Collections.sort(sortLoupanList, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return o2.getLoupanUv() - o1.getLoupanUv(); } });
package cn.focus.mobile.stat.enums; public enum SortEnum { NEWADDCOUNT("新增用户", "n"), DAYACTIVE("日活跃", "d"), STARTCOUNT("启动次数", "s"), ONCETIME("单次时长", "o"), ONEDAY("单日时长", "od"), INSTALLCOUNT("总用户数", "i"), UV("uv", "u"), PV("pv", "p"), DEPTH("访问深度", "de"), LOUPAN("楼盘达到", "l"), CALL400( "拨打400", "c"), DEFAULT("default", "f"), USERLIKE("收藏", "ul"), SHARE("分享点击", "sh"); private String abName; SortEnum(String name, String abName) { this.abName = abName; } public static SortEnum getKerenlSortEnumByAbName(String abName) { SortEnum[] values = SortEnum.values(); for (SortEnum sort : values) { if (sort.abName.equals(abName)) { return sort; } } return DEFAULT; } }
@Component public class ResultListSortInterceptor extends ControllerInterceptorAdapter { public ResultListSortInterceptor() { setPriority(3000); } @Override protected Class<? extends Annotation> getRequiredAnnotationClass() { return ResultListSort.class; } @SuppressWarnings("rawtypes") @Override protected Object after(Invocation inv, Object instruction) throws Exception{ String sortBy = inv.getParameter("sortBy"); String cityId = (String) inv.getModel("currentCityId"); int cid = 0; try { cid = Integer.parseInt(cityId); } catch (Exception e) { cid = 0; } List list = (List) inv.getModel("list"); SortEnum sort = SortEnum.getKerenlSortEnumByAbName(sortBy); if (cid <= 0) { if (CollectionUtils.isNotEmpty(list)) { Object o = list.get(0); if (null != o) { if (o instanceof ClientKernelResult) { list = sortKernel(sort, list); } else if (o instanceof CityDaily) { list = sortWapKernel(sort, list); } else if (o instanceof DaogouDaily) { list = sortDaogou(sort, list); } inv.addModel("list", list); } } } return super.after(inv, instruction); } @SuppressWarnings({ "unchecked", "rawtypes" }) private List sortKernel(SortEnum sort, List list) { switch (sort) { case NEWADDCOUNT: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getNewAddCount() - o1.getNewAddCount(); } }); break; case DAYACTIVE: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getActiveCount() - o1.getActiveCount(); } }); break; case STARTCOUNT: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getStartCount() - o1.getStartCount(); } }); break; case ONCETIME: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getOnceUserTime() - o1.getOnceUserTime(); } }); break; case ONEDAY: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getOnedayUserTime() - o1.getOnedayUserTime(); } }); break; case INSTALLCOUNT: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getInstallCount() - o1.getInstallCount(); } }); break; default: Collections.sort(list, new Comparator<ClientKernelResult>() { @Override public int compare(ClientKernelResult o1, ClientKernelResult o2) { return o2.getNewAddCount() - o1.getNewAddCount(); } }); break; } return list; } @SuppressWarnings({ "unchecked", "rawtypes" }) public List sortWapKernel(SortEnum sort, List list) { switch (sort) { case UV: Collections.sort(list, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return o2.getUv() - o1.getUv(); } }); break; case PV: Collections.sort(list, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return o2.getPv() - o1.getPv(); } }); break; case DEPTH: Collections.sort(list, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return String.valueOf(PageUtils.diviseDepth(o2.getPv(), o2.getUv())).compareTo( String.valueOf(PageUtils.diviseDepth(o1.getPv(), o1.getUv()))); } }); break; case LOUPAN: Collections.sort(list, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return o2.getLoupanUv() - o1.getLoupanUv(); } }); break; case CALL400: Collections.sort(list, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return o2.getCallUv() - o1.getCallUv(); } }); break; default: Collections.sort(list, new Comparator<CityDaily>() { @Override public int compare(CityDaily o1, CityDaily o2) { return o2.getUv() - o1.getUv(); } }); break; } return list; } @SuppressWarnings({ "unchecked", "rawtypes" }) public List sortDaogou(SortEnum sort, List list) { switch (sort) { case UV: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getUv() - o1.getUv(); } }); break; case PV: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getPv() - o1.getPv(); } }); break; case LOUPAN: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getLoupanUv() - o1.getLoupanUv(); } }); break; case USERLIKE: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getUserLikeUv() - o1.getUserLikeUv(); } }); break; case SHARE: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getShareUv() - o1.getShareUv(); } }); break; case CALL400: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getCallUv() - o1.getCallUv(); } }); break; default: Collections.sort(list, new Comparator<DaogouDaily>() { @Override public int compare(DaogouDaily o1, DaogouDaily o2) { return o2.getUv() - o1.getUv(); } }); break; } return list; } }