为什么ArrayList哈希映射将相同的值分配给不同位置的相同对象;

时间:2015-01-30 11:22:09

标签: android

我的应用计算城市之间的距离。有时,我得到一个形式为:

的ArrayList哈希映射
 [{username=p, startcity=A, finalcity=B}, 
{username=p, startcity=C, finalcity=D}, 
{username=f, , startcity=E, finalcity=D}, 
{username=e, startcity=F, finalcity=L}]

下面几行,我得到ArrayList

[{username=p, startcity=A, finalcity=B},
{username=e, startcity=F, finalcity=L}, 
    {username=p, startcity=C, finalcity=D}, 
    {username=f, , startcity=E, finalcity=D}, 
    {username=e, startcity=F, finalcity=L}]

请注意,位置1和位置4的对象完全相同。 然后我尝试在每个对象上分配不同的数字。问题是上述对象每次都得到相同的值......

...代码

for(n=0;n<5;n++){
ArrayList.get(n).put("n",String.valueof(n));
}
Log.d("ArrayList", ArrayList.toString.....

导致......

[{username=p, startcity=A, finalcity=B , n=0},
{username=e, startcity=F, finalcity=L,n=4!!!!//here...}, 
    {username=p, startcity=C, finalcity=D,n=2}, 
    {username=f, , startcity=E, finalcity=D,n=3}, 
    {username=e, startcity=F, finalcity=L,n=4}]

所以我无法区分这两个对象。为什么;这不奇怪;有没有办法做到这一点;提前致谢

2 个答案:

答案 0 :(得分:0)

首先,我不了解ArrayList哈希映射的含义。 ArrayList和HashMap完全不同。你做了一些转换吗?也许当你将ArrayList转换为HashMap时会发生错误。

其次,你说&#34;以下几行&#34;,我认为你应该粘贴这几行,这是其他人帮助解决你的问题所必需的。

我希望你能再次编辑你的问题。解决这个问题需要更多细节。

答案 1 :(得分:0)

ArrayList.get(n)
当n的值为4时,

将获得相同的对象,并且将覆盖n为1时放置的同一对象。