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