TreeMap类

TreeMap类

想TreeMap添加key-value,要求key必须是由同一个类创建的对象
因为要按照key进行自然排序:自然排序,定制排序
自然排序

@Test
    public void test1(){
        TreeMap map = new TreeMap();

        map.put(new User("Tom",23),98);
        map.put(new User("Jerry",32),89);
        map.put(new User("Jack",28),100);
        map.put(new User("Mack",25),99);
        Set set = map.entrySet();
//        for (Object o : set) {
//            System.out.println(o);
//        }
        Iterator iterator = set.iterator();
        while (iterator.hasNext()){
            Object object = iterator.next();
            Map.Entry entry = (Map.Entry) object;
            System.out.println(entry.getKey()+"---->"+entry.getValue());
        }
    }

定制排序

@Test
    public void test2(){
        TreeMap map = new TreeMap(new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                if(o1 instanceof User && o2 instanceof User ){
                    User u1 = (User) o1;
                    User u2 = (User) o2;
                    return Integer.compare(u1.getAge(),u2.getAge());
                }
                throw new RuntimeException("输入类型不匹配");
            }
        });

        map.put(new User("Tom",29),98);
        map.put(new User("Jerry",32),89);
        map.put(new User("Jack",28),100);
        map.put(new User("Mack",25),99);
        Set set = map.entrySet();
//        for (Object o : set) {
//            System.out.println(o);
//        }
        Iterator iterator = set.iterator();
        while (iterator.hasNext()){
            Object object = iterator.next();
            Map.Entry entry = (Map.Entry) object;
            System.out.println(entry.getKey()+"---->"+entry.getValue());
        }
    }
posted @ 2022-09-12 11:14  不落微笑  阅读(30)  评论(0)    收藏  举报