Java的ArrayList的HashMap中如何排序? [英] java arraylist HashMap how to sort?
本文介绍了Java的ArrayList的HashMap中如何排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何排序数组?
在
{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}
后
{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 =新的ArrayList(); 地图<字符串,整数> MMAP =新的HashMap<字符串,整数>();
mMap.put(A,1);
mMap.put(B,1);
mMap.put(C,3);
mylist.add(MMAP); MMAP =新的HashMap<字符串,整数>();
mMap.put(A,1);
mMap.put(B,1);
mMap.put(C,2);
mylist.add(MMAP); MMAP =新的HashMap<字符串,整数>();
mMap.put(A,1);
mMap.put(B,11);
mMap.put(C,2);
mylist.add(MMAP); MMAP =新的HashMap<字符串,整数>();
mMap.put(A,1);
mMap.put(B,2);
mMap.put(C,2);
mylist.add(MMAP); MMAP =新的HashMap<字符串,整数>();
mMap.put(A,1);
mMap.put(B,1);
mMap.put(C,11);
mylist.add(MMAP);
解决方案
定义你自己比较喜欢这样的:
公共类MyMapComparator实现比较<地图<字符串,整数>>
{
@覆盖
公众诠释比较(地图<字符串,整数> 01,地图<字符串,整数> O2)
{
INT℃; C = o1.get(A)的compareTo(o2.get(A));
如果(C = 0!)返回℃; C = o1.get(B)的compareTo(o2.get(B));
如果(C = 0!)返回℃; 返回o1.get(C)的compareTo(o2.get(C));
}
}
然后用它来排序列表:
Collections.sort(MYLIST,新MyComparator());
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<String,Integer> mMap = new HashMap<String,Integer>();
mMap.put("A",1);
mMap.put("B",1);
mMap.put("C",3);
mylist.add(mMap);
mMap = new HashMap<String,Integer>();
mMap.put("A",1);
mMap.put("B",1);
mMap.put("C",2);
mylist.add(mMap);
mMap = new HashMap<String,Integer>();
mMap.put("A",1);
mMap.put("B",11);
mMap.put("C",2);
mylist.add(mMap);
mMap = new HashMap<String,Integer>();
mMap.put("A",1);
mMap.put("B",2);
mMap.put("C",2);
mylist.add(mMap);
mMap = new HashMap<String,Integer>();
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<Map <String, Integer>>
{
@Override
public int compare (Map<String, Integer> o1, Map<String, Integer> 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 ());
这篇关于Java的ArrayList的HashMap中如何排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文