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