黑马程序员技术交流社区
标题:
TreeMap 你没有遇到的问题
[打印本页]
作者:
王善辉
时间:
2015-4-27 23:49
标题:
TreeMap 你没有遇到的问题
TreeMap map=new TreeMap( new Comparetor(){
public boolean compare(){
return -1;
}
});
我这里就不写Student类了,也不写泛型拉
map.put("1",student1);
map.put("2",student2);
map.put("3",student3);
map.put("4",student4);
Set set=map.keyset();
for( String stu :set){
Student student=map.get(stu);
System.out.println(stu+"---"+student);
}
-------------------------------------------------
结果:1------unll
2------unll
3------unll
4------unll
知道为啥不?提示看原码
作者:
鸡脑壳
时间:
2015-4-28 00:26
没看过0.0 看看去 0.0
作者:
Ray丶少年
时间:
2015-4-28 07:34
内部内覆盖方法的返回值不是boolean,而是int
作者:
海带
时间:
2015-4-28 08:43
public boolean compare(){
return -1;
} 代码有问题吧,
作者:
major2015
时间:
2015-4-28 08:55
看了你的题目,然后我试着做了哈,好像找到了原因
是不是因为get(object key)的方法啊
因为我使用entrySet试了哈没问题,就是keySet有问题,然后就看了哈treemap的get方法的源码
public V get(Object key) {
Entry<K,V> p = getEntry(key);
return (p==null ? null : p.value);
}
复制代码
我的代码是:
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class Test3 {
public static void main(String[] args) {
TreeMap<String, Student> map = new TreeMap<String, Student>(
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return 1;
}
});
map.put("1", new Student());
map.put("2", new Student());
map.put("3", new Student());
map.put("4", new Student());
System.out.println(map);
Set<String> set = map.keySet();
for (String stu : set) {
Student student = map.get(stu);
System.out.println(stu + "---" + student);
}
Set<Map.Entry<String, Student>> set1=map.entrySet();
Iterator<Entry<String, Student>> it=set1.iterator();
while(it.hasNext()){
Entry<String, Student> en=it.next();
String id=en.getKey();
Student stu=en.getValue();
System.out.println(id+">>>"+stu);
}
}
}
class Student {
}
复制代码
写了这么多,求告知答案
作者:
wnk77521
时间:
2015-4-28 18:02
一你有可能没有定义Student类 定义过之后一定要重写Tosring方法 就这么多
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2