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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值