微信登录

Map双列集合 - TreeMap

  1. package com.atguigu.java;
  2. import org.junit.Test;
  3. import java.util.*;
  4. /**
  5. * @author shkstart
  6. * @create 2019 下午 3:46
  7. */
  8. public class TreeMapTest {
  9. //向TreeMap中添加key-value,要求key必须是由同一个类创建的对象
  10. //因为要按照key进行排序:自然排序 、定制排序
  11. //自然排序
  12. @Test
  13. public void test1(){
  14. TreeMap map = new TreeMap();
  15. User u1 = new User("Tom",23);
  16. User u2 = new User("Jerry",32);
  17. User u3 = new User("Jack",20);
  18. User u4 = new User("Rose",18);
  19. map.put(u1,98);
  20. map.put(u2,89);
  21. map.put(u3,76);
  22. map.put(u4,100);
  23. Set entrySet = map.entrySet();
  24. Iterator iterator1 = entrySet.iterator();
  25. while (iterator1.hasNext()){
  26. Object obj = iterator1.next();
  27. Map.Entry entry = (Map.Entry) obj;
  28. System.out.println(entry.getKey() + "---->" + entry.getValue());
  29. }
  30. }
  31. //定制排序
  32. @Test
  33. public void test2(){
  34. TreeMap map = new TreeMap(new Comparator() {
  35. @Override
  36. public int compare(Object o1, Object o2) {
  37. if(o1 instanceof User && o2 instanceof User){
  38. User u1 = (User)o1;
  39. User u2 = (User)o2;
  40. return Integer.compare(u1.getAge(),u2.getAge());
  41. }
  42. throw new RuntimeException("输入的类型不匹配!");
  43. }
  44. });
  45. User u1 = new User("Tom",23);
  46. User u2 = new User("Jerry",32);
  47. User u3 = new User("Jack",20);
  48. User u4 = new User("Rose",18);
  49. map.put(u1,98);
  50. map.put(u2,89);
  51. map.put(u3,76);
  52. map.put(u4,100);
  53. Set entrySet = map.entrySet();
  54. Iterator iterator1 = entrySet.iterator();
  55. while (iterator1.hasNext()){
  56. Object obj = iterator1.next();
  57. Map.Entry entry = (Map.Entry) obj;
  58. System.out.println(entry.getKey() + "---->" + entry.getValue());
  59. }
  60. }
  61. }