java中将类添加到Vector后面,类中有多元素的一个Vector,只有最后一个元素输出

「已注销」 2013-10-14 02:19:21
这是 school 类中的一个函数,用来向student类中添加一条记录
info数组的格式为 姓名 课程名 分数 课程名 分数 课程名 分数 ....
school类中,有个stu的Vector, 还有个stemp,都是class student类型
下面的代码是添加一条记录,


// Vector <student> stu = new Vector <student>
// student stemp = new student();
public void addstu(String[] info){
stemp.name = info[0]; //学生姓名

//感觉这一步出了问题
stemp.addcou(info); //添加课程 函数代码在下面


stu.addElement(stemp); //把做好的类放到Vector最后
System.out.println(stemp.cou.elementAt(0).c_name);
int i = 0;
while(i<3){
System.out.println("-----1-----");
System.out.println(stemp.name);
System.out.println(stu.elementAt(0).cou.elementAt(i).c_name);
System.out.println(stemp.cou.elementAt(i).c_name);
i++;
}
}


这是student类中的一个函数,用来给一个学生添加课程
类中有个cou 的 Vector, 和一个 ctemp 都是class course类型。

// Vector <course> cou = new Vector <course>
// course ctemp = new course();
public void addcou(String[] info){
int length = info.length;
int i = 1;
while(i<length){
ctemp.c_name = info[i]; //存入课程名
ctemp.mark = Integer.parseInt(info[i+1]); //存入成绩
i+=2;
cou.addElement(ctemp); //在结尾添加ctemp
System.out.println("-----2-----");
System.out.println(cou.elementAt((i-2)/2).c_name);
cou_num++;
}
}



结果现在遇到的问题是,
比如我输入的是
name math 100 cs 90 english 80

第二个函数输出
-----2-----
math
-----2-----
cs
-----2-----
english

是正确的

但是第一行却是

-----1-----
name
english
english
-----1-----
name
english
english
-----1-----
name
english
english

3条都是最后一个元素

为什么呢?是因为内部的Vector 传出来出现了问题吗?
...全文
273 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2013-10-16
  • 打赏
  • 举报
回复
嗯,发现ArrayList比较方便一点,就换用ArrayList了。 按照你说的解决了,java里面虽然没有指针,但是变量如果不new,就只是把指的内容变了。
失落夏天 2013-10-14
  • 打赏
  • 举报
回复
你这是对一个对象添加了三遍值 // course ctemp = new course();应该生成三个course 对象的,而不是一个!!!!这句话应该移到下面的方法里面。。 public void addcou(String[] info){ int length = info.length; int i = 1; while(i<length){ //在这里new course(); ctemp.c_name = info[i]; //存入课程名 ctemp.mark = Integer.parseInt(info[i+1]); //存入成绩 i+=2; cou.addElement(ctemp); //在结尾添加ctemp System.out.println("-----2-----"); System.out.println(cou.elementAt((i-2)/2).c_name); cou_num++; } }

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧