【问题标题】:Why ArrayList hash map assigns same values to same objects at different positions;为什么 ArrayList hashmap 给不同位置的相同对象分配相同的值;
【发布时间】:2025-12-04 07:20:29
【问题描述】:

我的应用会计算城市之间的距离。有时,我得到一个 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}]

所以我无法区分这两个对象。为什么;这不是很奇怪吗?有没有办法做到这一点;在此先感谢

【问题讨论】:

  • 你可以在这里添加你的整个代码
  • 上面的代码是对真正问题的一个非常简单的翻译。代码太大了,不能在这里发布。但是..关于上面的简单例子会发生吗?或者我在做梦……

标签: android


【解决方案1】:

首先,我不明白 ArrayList 哈希映射是什么意思。 ArrayList 和 HashMap 完全不同。你做了一些转换吗?当你将 ArrayList 转换为 HashMap 时,可能会发生错误。

其次,你说“下面几行”,我觉得你应该把那几行贴上去,有必要让别人帮你解决问题。

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

【讨论】:

【解决方案2】:
ArrayList.get(n)

当 n 的值为 4 时将获得相同的对象,并将覆盖当 n 为 1 时放置的相同对象。

【讨论】:

  • 区分这两个对象的任何建议;
最近更新 更多