List(Map(String, Object)) 中文欄位排序
迴圈遍曆按其中某個中文欄位排序
/** * 中文排序 * @author itmyhome * */ public class MapComparator implements Comparator> { @Override public int compare(Map o1, Map o2) { // TODO Auto-generated method stub String b1 = (String)o1.get(NAME); String b2 = (String)o2.get(NAME); Collator cmp = Collator.getInstance(java.util.Locale.CHINA); if (cmp.compare(b1, b2)>0){ return 1; }else if (cmp.compare(b1, b2)<0){ return -1; } return 0; } }
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub List> list = new ArrayList>(); Map map1 = new HashMap(); Map map2 = new HashMap(); Map map3 = new HashMap(); Map map4 = new HashMap(); Map map5 = new HashMap(); map1.put(NAME, 朱元璋); map2.put(NAME, 常遇春); map3.put(NAME, 張無忌); map4.put(NAME, 郭靖); map5.put(NAME, 洪七公); list.add(map1);list.add(map2);list.add(map3);list.add(map4);list.add(map5); System.out.println(***排序前***); for(Map map:list){ System.out.println(map.get(NAME)); } System.out.println(***排序後***); Collections.sort(list, new MapComparator()); for(Map map:list){ System.out.println(map.get(NAME)); } } }
結果:
***排序前*** 朱元璋 常遇春 張無忌 郭靖 洪七公 ***排序後*** 常遇春 郭靖 洪七公 張無忌 朱元璋