compare排序

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;
    }

}

猜你喜欢

转载自wangqiaowqo.iteye.com/blog/2067346
今日推荐