List<Map> list ;
list 数据格式如下:
[{
stype=source_from,
pkey=100,
pname=CSDN,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=2,
vflag=add,
comments=来源,
source_from=SS},
{stype=source_from,
pkey=101,
pname=百度文库,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=0,
vflag=add,
comments=来源,
source_from=SS},
{stype=source_from,
pkey=10007,
pname=360文库,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=0,
vflag=add,
comments=来源,
source_from=SS}]
目标根据map的pkey排序List里面的Map.
我想这样写:
Collections.sort(order_from_list, new Comparator<Map<Object, Object>>() {
public int compare(Map<Object, Object> o1, Map<Object, Object> o2) {
int map1value = (Integer) o1.get("pkey");
int map2value = (Integer) o2.get("pkey");
return map1value - map2value;
}
});
但是报sort有错:The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (List<Map>, new Comparator<Map<Object,Object>>(){})
这个参数类型不对,怎么改这东西谢谢大神指导!
你是用的java?
你需要linq,
直接用orderby,不用实现对比接口