java arraylist hashmap,Java的ArrayList的HashMap中如何排序?

How to sort array?

Before

{"A"=1, "B"=1, "C"=3},

{"A"=1, "B"=1, "C"=2},

{"A"=1, "B"=11, "C"=2},

{"A"=1, "B"=2, "C"=2},

{"A"=1, "B"=1, "C"=11}

After

{"A"=1, "B"=1, "C"=2},

{"A"=1, "B"=1, "C"=3},

{"A"=1, "B"=1, "C"=11},

{"A"=1, "B"=2, "C"=2},

{"A"=1, "B"=11, "C"=2}

Code

ArrayList mylist = new ArrayList();

Map mMap = new HashMap();

mMap.put("A",1);

mMap.put("B",1);

mMap.put("C",3);

mylist.add(mMap);

mMap = new HashMap();

mMap.put("A",1);

mMap.put("B",1);

mMap.put("C",2);

mylist.add(mMap);

mMap = new HashMap();

mMap.put("A",1);

mMap.put("B",11);

mMap.put("C",2);

mylist.add(mMap);

mMap = new HashMap();

mMap.put("A",1);

mMap.put("B",2);

mMap.put("C",2);

mylist.add(mMap);

mMap = new HashMap();

mMap.put("A",1);

mMap.put("B",1);

mMap.put("C",11);

mylist.add(mMap);

解决方案

Define your own comparator like this:

public class MyMapComparator implements Comparator>

{

@Override

public int compare (Map o1, Map o2)

{

int c;

c = o1.get ("A").compareTo(o2.get ("A"));

if (c != 0) return c;

c = o1.get ("B").compareTo(o2.get ("B"));

if (c != 0) return c;

return o1.get ("C").compareTo(o2.get ("C"));

}

}

Then use it to sort your list:

Collections.sort (mylist, new MyComparator ());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值