黑马程序员技术交流社区
标题:
求大神解释!!!
[打印本页]
作者:
邓熊财
时间:
2015-5-22 00:49
标题:
求大神解释!!!
package stack1;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class Test3 {
public static void main(String [] args){
TreeMap<String,ArrayList<Student>> tm = new TreeMap<String,ArrayList<Student>>(
new Comparator<String>(){
@Override
public int compare(String s1, String s2) {
//这里相减正常(下面ArrayList可以正常)
//int num = s1.hashCode()-s2.hashCode();
//相加空指针异常
//return num;
//正数或者负数空指针异常
//return -1;
//为0是遍历方式1只有一半打印的出来
return -1;
}
});
String s = new String("110");
String s1 = new String("111");
ArrayList<Student> ar = new ArrayList<Student>();
ar.add(new Student("赵薇",22));
ar.add(new Student("赵",2));
ar.add(new Student("赵薇",2));
ar.add(new Student("赵薇",20));
tm.put(s, ar);
ArrayList<Student> a = new ArrayList<Student>();
a.add(new Student("赵0",22200));
a.add(new Student("赵薇",22));
a.add(new Student("赵薇",222));
a.add(new Student("赵薇",223));
tm.put(s1,a);
//可以打印出
/* System.out.println(tm);
* 打印为null
System.out.println(tm.get(s));
//打印正常
System.out.println(tm);*/
// 空指针异常
Set<String> set = tm.keySet();
System.out.println(set.size());
//for(String s : set){
//System.out.println(s+tm.get(s));
//ArrayList<Student> at = tm.get(s);
/*for(Student am : at){
System.out.println(am.getName()+" "+am.getAge());*/
//}
//正常情况
/* Set<Map.Entry<String, ArrayList<Student>>> set = tm.entrySet();
for (Map.Entry<String, ArrayList<Student>> entry : set) {
//System.out.println(entry);
System.out.println(entry.getKey()+":");
ArrayList<Student> al = entry.getValue();
for (Student student : al) {
System.out.println(student.getName()+"***"+student.getAge());
}
}*/
标准的学生类不上传了
}
}
作者:
邓熊财
时间:
2015-5-22 00:51
注解上面的两个put中原来是直接传的int的数字当然是用双引号引起来的哦!
作者:
kapp_tolo
时间:
2015-5-22 11:38
完整的写一下吧。1.需求是什么;2.完整代码贴一下。你这样贴出来,大家看起来会很累,会有抵触情绪和浪费时间。:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2