java中list里面存放map,根据map中的某一个字段进行排序

  1. package com;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. public class Com {
  9. /**
  10. * @param args
  11. */
  12. @SuppressWarnings({ "rawtypes", "unchecked" })
  13. public static void main(String[] args) {
  14. // TODO Auto-generated method stub
  15. List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  16. Map<String, Object> map1 = new HashMap<String, Object>();
  17. map1.put("id", "1");
  18. map1.put("name", "p");
  19. Map<String, Object> map2 = new HashMap<String, Object>();
  20. map2.put("id", "2");
  21. map2.put("name", "h");
  22. Map<String, Object> map3 = new HashMap<String, Object>();
  23. map3.put("id", "3");
  24. map3.put("name", "f");
  25. list.add(map1);
  26. list.add(map3);
  27. list.add(map2);
  28. //排序前
  29. for (Map<String, Object> map : list) {
  30. System.out.println(map.get("id"));
  31. }
  32. Collections.sort(list, new Comparator<Map<String, Object>>(){
  33. public int compare(Map<String, Object> o1, Map<String, Object> o2) {
  34. String name1 =(String)o1.get("id");//name1是从你list里面拿出来的一个
  35. String name2= (String)o2.get("id"); //name1是从你list里面拿出来的第二个name
  36. return name1.compareTo(name2);
  37. }
  38. });
  39. //排序后
  40. System.out.println("-------------------");
  41. for (Map<String, Object> map : list) {
  42. System.out.println(map.get("id"));
  43. }
  44. }
  45. }

运行结果是:

1

3

2

[java]view plaincopy

  1. -------------------

1

2

3

转自:http://blog.csdn.net/g631521612/article/details/8768658