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 }
此为本人学习笔记,若有错误,请不吝赐教