黑马程序员技术交流社区
标题:
参数类表求助
[打印本页]
作者:
王雷1
时间:
2013-11-20 16:04
标题:
参数类表求助
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,上面的代码我应该怎么写,这里可以这么传?
}
作者:
∏艾力克斯※
时间:
2013-11-20 16:41
我估计LZ是想这么写,所以我写个能运行的版本,风格完全参考LZ,别吐槽我。
功能:根据班级名,查找指定学校中对应班级的人员信息
package test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.TreeMap;
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 {
TreeMap<String, ArrayList<Student>> xuexiao = null;//学校
ArrayList<Student> yiban = null;//一班
ArrayList<Student> erban = null;//二班
/**
* 初始化学校、班级数据
*/
public void xuexiao1() {
xuexiao = new TreeMap<String, ArrayList<Student>>();
yiban = new 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));
}
/**
* 放入学校、班级名称,输出该班级学生列表
*
* @param xuexiao
* @param banji
* @return
*/
public void getStudent(TreeMap<String, ArrayList<Student>> xuexiao,
String banji) {
Iterator<String> it = xuexiao.keySet().iterator();
while (it.hasNext()) {
//遍历集合
String s = it.next();
// 如果班级名相同
if (s.equals(banji)) {
System.out.println("班级名是:" + s);
ArrayList<Student> ss = xuexiao.get(s);//当前班级人员集合
Iterator<Student> itr = ss.iterator();
while (itr.hasNext()) {//遍历班级人员
Student sss = itr.next();
System.out.println("该班学生的信息:"+sss.toStrint());
}
}
}
}
}
public class p {
public static void main(String[] args) {
xuexiao xx = new xuexiao();
xx.xuexiao1();//初始化
//我估计LZ应该是想这么写,所以我写个根据班级名出资料的法子
xx.getStudent(xx.xuexiao, "erban");//这方法应该这么写
}
}
复制代码
还有LZ,你该好好学习下规范,别贪功冒进了……
作者:
王雷1
时间:
2013-11-21 10:25
家里没有网,所以看到的晚了点,我就是要这样的结果,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2