TreeMapTest

 1 package maptest;
 2 
 3 import listtest.Person;
 4 import org.junit.Test;
 5 
 6 import java.util.*;
 7 
 8 /**
 9  *
10  *
11  *
12  * @author FuJingchao
13  * @Date: 2021/12/25 - 13:18
14  */
15 public class TreeMapTest {
16     //向TreeMap中添加key-value,要求key必须是由同一个类创建的对象
17     //因为要按照key进行排序:自然排序、定制排序
18     @Test
19     public void test1(){
20         TreeMap map = new TreeMap();
21         Person p1 = new Person("Tom",23);
22         Person p2 = new Person("jack",32);
23         Person p3 = new Person("Bob",18);
24         Person p4 = new Person("Jam",15);
25         map.put(p1,98);
26         map.put(p2,89);
27         map.put(p3,96);
28         map.put(p4,100);
29 
30         Set entrySet = map.entrySet();//entrySet集合中的元素都是entry
31         Iterator iterator = entrySet.iterator();
32         while (iterator.hasNext()){
33             Object obj = iterator.next();
34             Map.Entry entry = (Map.Entry) obj;
35             System.out.println(entry.getKey()+"--->"+entry.getValue());
36         }
37     }
38 
39     //定制排序:按照姓名从小到大排序,再按照年龄从小到大排序
40     @Test
41     public void test2(){
42         TreeMap map = new TreeMap(new Comparator() {
43             @Override
44             public int compare(Object o1, Object o2) {
45                 if(o1 instanceof Person && o2 instanceof Person){
46                     Person p1 = (Person) o1;
47                     Person p2 = (Person) o2;
48                     int compare = p1.getName().compareTo(p2.getName());
49                     if(compare != 0){
50                         return compare;
51                     }else {
52                         return Integer.compare(p1.getAge(),p2.getAge());
53                     }
54                 }
55                 throw new RuntimeException("类型输出不一致");
56             }
57         });
58         Person p1 = new Person("Tom",23);
59         Person p2 = new Person("Jack",32);
60         Person p3 = new Person("Bob",18);
61         Person p4 = new Person("Jam",15);
62         map.put(p1,98);
63         map.put(p2,89);
64         map.put(p3,96);
65         map.put(p4,100);
66 
67         Set entrySet = map.entrySet();//entrySet集合中的元素都是entry
68         Iterator iterator = entrySet.iterator();
69         while (iterator.hasNext()){
70             Object obj = iterator.next();
71             Map.Entry entry = (Map.Entry) obj;
72             System.out.println(entry.getKey()+"--->"+entry.getValue());
73         }
74     }
75 
76 
77 }

 

posted @ 2021-12-25 16:36  橘猫的夏天  阅读(33)  评论(0编辑  收藏  举报