A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.Comparator;
import java.util.TreeMap;

public class Test4 {

        /**
         * 用适当的Map集合存储5个学生的学号和姓名,并按学号的倒序将学生姓名打印出来
         */
        public static void main(String[] args) {
                        TreeMap<String, String> tm = new TreeMap<>(new Comparator<String>() {

                              @Override
                                   public int compare(String s1, String s2) {
                                          int num = s2.compareTo(s1);
                                return num == 0 ? 1 : num;
                        }
                });

                tm.put("007", "张三");
                tm.put("004", "李四");
                tm.put("005", "王武");
                tm.put("003", "周六");
                tm.put("006", "赵琦");

                System.out.println(tm);
                System.out.println(tm.get("003"));

                for (String s : tm.keySet()) {
                        System.out.println(s + tm.get(s));

                }
               
                //tm.put(key, value)
        }
}
这样打印不能通过键得到值,打印的值是null  为什么?求大神指教


6 个回复

倒序浏览
为啥你传入比较器重写的却是compareTo()方法?
回复 使用道具 举报
哪一步打印的是null?
回复 使用道具 举报
云袭 发表于 2016-6-19 21:01
哪一步打印的是null?

通过键打印值 的时候
回复 使用道具 举报
云袭 发表于 2016-6-19 21:01
哪一步打印的是null?

通过键打印值的时候
回复 使用道具 举报
传比较器重写的应该是comparator的compare方法
回复 使用道具 举报
牛凌霄 发表于 2016-6-19 19:44
为啥你传入比较器重写的却是compareTo()方法?

重写的是compare方法啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马