黑马程序员技术交流社区
标题:
map集合中不能传comparator比较器吗?
[打印本页]
作者:
ajj1314
时间:
2016-6-18 23:32
标题:
map集合中不能传comparator比较器吗?
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 为什么?求大神指教
作者:
牛凌霄
时间:
2016-6-19 19:44
为啥你传入比较器重写的却是compareTo()方法?
作者:
云袭
时间:
2016-6-19 21:01
哪一步打印的是null?
作者:
ajj1314
时间:
2016-6-20 10:43
云袭 发表于 2016-6-19 21:01
哪一步打印的是null?
通过键打印值 的时候
作者:
ajj1314
时间:
2016-6-20 10:46
云袭 发表于 2016-6-19 21:01
哪一步打印的是null?
通过键打印值的时候
作者:
何亚辉
时间:
2016-6-20 13:17
传比较器重写的应该是comparator的compare方法
作者:
ajj1314
时间:
2016-6-20 15:20
牛凌霄 发表于 2016-6-19 19:44
为啥你传入比较器重写的却是compareTo()方法?
重写的是compare方法啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2