一个arraylist的奇怪的问题

STAR095 2010-09-30 12:06:27
我将取得值按循环插入question_ItemList中,代码如下所示,在循环中,值是正确的。
但是为什么一出循环,question_ItemList中的值都是最后插入的那个值了呢,全部一样,比如我插入了三个值,但是在循环外读的时候,question_ItemList中的值都是第三个值。搞不懂了。请高手释疑啊!

for(int i=0;i<titledanxuanList.size();i++)
{
question_item.setQuestionType("sinSelect");
question_item.setTitle(titledanxuanList.get(i));
question_item.setOptions(optiondanxuanList.get(i));
question_item.setIndicatorId(blongindicatorIdList.get(i));
question_ItemList.add(question_item);
Question_Item nii=question_ItemList.get(i);
System.out.println(nii.getTitle());
}
}
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
salever 2010-10-08
  • 打赏
  • 举报
回复
^_^ 努力就会进步的嘛
soli11722984 2010-09-30
  • 打赏
  • 举报
回复
不是最后那个才奇怪

for(int i=0;i<titledanxuanList.size();i++)
{
XXX question_item = new XXX();
question_item.setQuestionType("sinSelect");
question_item.setTitle(titledanxuanList.get(i));
question_item.setOptions(optiondanxuanList.get(i));
question_item.setIndicatorId(blongindicatorIdList.get(i));
question_ItemList.add(question_item);
Question_Item nii=question_ItemList.get(i);
System.out.println(nii.getTitle());
}
}
STAR095 2010-09-30
  • 打赏
  • 举报
回复
谢谢各位大侠,我有很多菜鸟问题,以后慢慢问,谢谢大家
STAR095 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 salever 的回复:]
这个太基础了, question_item只是重新设置了一下,就add到list中区了,那么每次循环都仅仅是简单的重新设置了一下,然后add进去,因此你的list里存的都是一个对象,相当于

question_item.setQuestionType("sinSelect");
question_item.setTitle(titledanxuanList.get(i));
q……
[/Quote]
我是学生,我很久以前接触过Java,最近给师兄做项目了,丢人了,请不要歧视菜鸟
dr_lou 2010-09-30
  • 打赏
  • 举报
回复
这种问题2个注意点。

1.add要放到循环里
2.每次循环要new新的
salever 2010-09-30
  • 打赏
  • 举报
回复
这个太基础了, question_item只是重新设置了一下,就add到list中区了,那么每次循环都仅仅是简单的重新设置了一下,然后add进去,因此你的list里存的都是一个对象,相当于

question_item.setQuestionType("sinSelect");
question_item.setTitle(titledanxuanList.get(i));
question_item.setOptions(optiondanxuanList.get(i));
question_item.setIndicatorId(blongindicatorIdList.get(i));
for(int i=0;i<titledanxuanList.size();i++)
{
question_ItemList.add(question_item);
Question_Item nii=question_ItemList.get(i);
System.out.println(nii.getTitle());
}

如果想达到目的,循环体内部需要重新new对象才行。

敢问一下,LZ是学生还是已经在上班了呀?

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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