黑马程序员技术交流社区
标题:
参数列表求助
[打印本页]
作者:
冯大卫
时间:
2014-9-1 15:20
标题:
参数列表求助
class Student{
private String name;
private int age;
Student(String name,int age){
this.name=name;
this.age=age;
}
public String toStrint(){
return name+":::"+age;
}
}
class xuexiao{
public void xuexiao1(){
TreeMap<String,ArrayList<Student>> xuexiao=new TreeMap<String,ArrayList<Student>>();
ArrayList<Student> yiban=new ArrayList<Student>();
ArrayList<Student> erban=new ArrayList<Student>();
xuexiao.put("yiban",yiban);
xuexiao.put("erban",erban);
yiban.add(new Student("zhangsan",12));
yiban.add(new Student("zhangsan",13));
yiban.add(new Student("zhangsan",14));
erban.add(new Student("wangwu",23));
erban.add(new Student("wangwu",24));
erban.add(new Student("wangwu",22));
}
public void getStudent(TreeMap<String,ArrayList<Student>> xuexiao,ArrayList<Student> banji){
Iterator<String> it=xuexiao.keySet().iterator();
while(it.hasNext()){
String s=it.next();
ArrayList<Student> ss=xuexiao.get(s);
if(ss==banji)
System.out.println(s);
Iterator<Student> itr=banji.iterator();
while(itr.hasNext()){
Student sss=itr.next();
if(ss==banji)
System.out.println(sss);
}
}
}
}
class p{
public static void main(String[] args){
xuexiao xx=new xuexiao();
xx.xuexiao1();
xx.getStudent(xuexiao,erban);
}//我就是想这么传,但是这是错误的参数,运行就Error,上面的代码我应该怎么写,这里可以这么传?
}
作者:
依然超级赛亚人
时间:
2014-9-1 17:19
不知道你的原本的代码里有没有导包,这上面没有,如果你那代码中也没导包那记得导包。你要给getStudent()方法传xuexiao和erban,但是这两个变量哪里来?你定义了xuexiao1()这个方法没有将里面的xuexiao和erban取出来,光调用这个xuexiao1()方法是没有任何作用的,getStudent()没有拿到。我稍微给你改一下,你看看想采用吗?其实就是把xuexiao1()方法代码移到主方法中来了。还有,你的这个代码说实在的阅读性稍差,把变量尽量定义的有点符合常规,个人意见而已,请斟酌!
class p{
public static void main(String[] args){
TreeMap<String,ArrayList<Student>> xuexiao=new TreeMap<String,ArrayList<Student>>();
ArrayList<Student> yiban=new ArrayList<Student>();
ArrayList<Student> erban=new ArrayList<Student>();
xuexiao.put("yiban",yiban);
xuexiao.put("erban",erban);
yiban.add(new Student("zhangsan",12));
yiban.add(new Student("zhangsan",13));
yiban.add(new Student("zhangsan",14));
erban.add(new Student("wangwu",23));
erban.add(new Student("wangwu",24));
erban.add(new Student("wangwu",22));
xuexiao xx=new xuexiao();
xx.getStudent(xuexiao,erban);
}//我就是想这么传,但是这是错误的参数,运行就Error,上面的代码我应该怎么写,这里可以这么传?
}
复制代码
作者:
梦里听传说
时间:
2014-9-1 17:37
import java.util.*;
class Student{
private String name;
private int age;
Student(String name,int age){
this.name=name;
this.age=age;
}
public String toStrint(){
return name+":::"+age;
}
}
class xuexiao{
/*
public void xuexiao1(){
TreeMap<String,ArrayList<Student>> xuexiao=new TreeMap<String,ArrayList<Student>>();
ArrayList<Student> yiban=new ArrayList<Student>();
ArrayList<Student> erban=new ArrayList<Student>();
xuexiao.put("yiban",yiban);
xuexiao.put("erban",erban);
yiban.add(new Student("zhangsan",12));
yiban.add(new Student("zhangsan",13));
yiban.add(new Student("zhangsan",14));
erban.add(new Student("wangwu",23));
erban.add(new Student("wangwu",24));
erban.add(new Student("wangwu",22));
这一段不能放在这个类里的方法里,虽然你在main里调用了该方法但是当这方法执行完这段代码就从内存里消失了,
所以造成了你的困惑,把这段代码放到main里执行就行了
}*/
public void getStudent(TreeMap<String,ArrayList<Student>> xuexiao,ArrayList<Student> banji){
Iterator<String> it=xuexiao.keySet().iterator();
while(it.hasNext()){
String s=it.next();
ArrayList<Student> ss=xuexiao.get(s);
if(ss==banji)
System.out.println(s);//还有你这里面的代码有问题,打印的是内存引用 你修改下就好了,我都不帮你改了
Iterator<Student> itr=banji.iterator();
while(itr.hasNext()){
Student sss=itr.next();
if(ss==banji)
System.out.println(sss);
}
}
}
}
class txt01
{
public static void main(String[] args)
{
TreeMap<String,ArrayList<Student>> xuexiao=new TreeMap<String,ArrayList<Student>>();
ArrayList<Student> yiban=new ArrayList<Student>();
ArrayList<Student> erban=new ArrayList<Student>();
xuexiao.put("yiban",yiban);
xuexiao.put("erban",erban);
yiban.add(new Student("zhangsan",12));
yiban.add(new Student("zhangsan",13));
yiban.add(new Student("zhangsan",14));
erban.add(new Student("wangwu",23));
erban.add(new Student("wangwu",24));
erban.add(new Student("wangwu",22));
xuexiao xx=new xuexiao();
xx.getStudent(xuexiao,erban);
}//我就是想这么传,但是这是错误的参数,运行就Error,上面的代码我应该怎么写,这里可以这么传?
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2