关于java里面的list

这个list里面的值为什么一样的呢按道理应该输出id为1,2... 这个list里面的值为什么一样的呢按道理应该输出id为1,2 展开
 我来答
lailaiwcl
2014-10-06 · 超过98用户采纳过TA的回答
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:165万
展开全部
这是由于java引用造成的,相当于c语言中的指针,如果没有理解java的引用,很容易犯这种错误。
因为String[] clo是一个对象。当你第一次执行循环时,li.add(clo)只是把clo的引用放到list中去了,就是li.get(0)的中存放了clo的引用。第二次执行时循环时,clo中的值修改了,但没用创建新的对象,由于你没有创建新的对象,li.get(1)再次存放clo的引用,所以导致li.get(0)的值也修改了。
简单的说,li.get(0)和li.get(1)存放的是同一个对象。所以你想不出错,需要把clo的定义放到while循环体里面。

ps:java虽然对外无指针,但内部还是使用指针实现的。建议你去看一下java对象在内存中的存放方式。
追问
额,知道了,谢谢了,我打印了下,发现get(0)和get(1)里面存的是col数组的首地址
蓬蓬同学
2014-10-06 · TA获得超过1588个赞
知道小有建树答主
回答量:925
采纳率:0%
帮助的人:217万
展开全部
看数据库吧
追问

数据库id就两个值为什么输出的是第二个

追答
惭愧了,五级的哥们说的很对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-06
展开全部
所有的代码都贴上来好不?
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式