首页 新闻 搜索 专区 学院

java 的 List<Map> 排序问题,把符合条件放到前面去

0
悬赏园豆:60 [已关闭问题] 关闭于 2015-06-03 17:37

List<Map>   listMap;

现需要把pname=ITEYES的排第一,pname=OSCHINA排第二,pname=CSDN排第三

listMap的数据格式如下:

[
{
stype=source_from,
pkey=10001,
pname=CSDN,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=2,
vflag=add,
comments=订单,
source_from=ECS
},
{
stype=source_from,
pkey=10005,
pname=ITEYES,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=0,
vflag=add,
comments=来源,
source_from=ECS
},
{
stype=source_from,
pkey=10007,
pname=360,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=0,
vflag=add,
comments=来源,
source_from=EC
},
{
stype=source_from,
pkey=10012,
pname=OSCHINA,
codea=,
codeb=,
codec=,
coded=,
codee=,
dflag=,
sortby=0,
vflag=add,
comments=来源,
source_from=EC
}]

这个怎么写亲们?

xmj0207的主页 xmj0207 | 初学一级 | 园豆:188
提问于:2015-06-03 11:25
< >
分享
所有回答(2)
0

for (int i = 0; i < order_from_list.size(); i++) {
if (order_from_list.get(i).get("pname").equals("ITEYES")) {
order_from_list.set(0, order_from_list.get(i));
} else if (order_from_list.get(i).get("pname").equals("OSCHINA")) {
order_from_list.set(1, order_from_list.get(i));
} else if (order_from_list.get(i).get("pname").equals("CSDN")) {
order_from_list.set(2, order_from_list.get(i));
}
}

 

就这么简单!靠,以后还是得自己先看看API

xmj0207 | 园豆:188 (初学一级) | 2015-06-03 17:37

简单粗暴,那是不可取,因为写得太死了。

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2015-06-05 10:14
0

1、实现compare接口

2、利用Collections.sort(list, new Compare());  来实现排序。

参考:http://zhangcong170.iteye.com/blog/842686

幻天芒 | 园豆:36594 (高人七级) | 2015-06-03 17:40

这种方法用过,已经处理了,谢谢

支持(0) 反对(0) xmj0207 | 园豆:188 (初学一级) | 2015-06-05 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册