为什么对象通过在每个对象中分配具有不同状态的相同 ArrayList 来获得相同的结果

why do objects get the same result by assigning the same arraylist with a different state in each of them

提问人:Vinícius Eduardo Lima Lodi 提问时间:8/1/2023 最后编辑:Vinícius Eduardo Lima Lodi 更新时间:8/16/2023 访问量:42

问:

在 Java OOP 中从对象操作方法中的 arraylist 时出现问题,这些方法采用最后一种状态 的 ArrayList 忽略了我希望一个对象具有数组的某些元素,而另一个对象具有其他元素。

正如您在第一个示例代码中看到的,我有两个对象,我想通过该方法为它们提供同一数组列表的两个不同内容,因为它是在第二个示例代码上我的方法中定义的,但是当我从数组中删除一个对象并使用第二个对象中的方法时,目的是为它提供数组列表的元素,而没有前一个元素“folclore”,两个结果都是一样的,两个对象都取了数组列表的最后一个状态,元素“folclore”出来了,(你可以在结果中看到),所以可以解决它吗?

第一个示例代码:

ArrayList<Album> albuns = new ArrayList<Album>();
Collections.addAll(albuns, folclore, sedimentar,angry,sick,hungry,fever,fast,slow,happy,sad);
lilnas.setAlbuns(albuns);
albuns.remove(0);
filipe.setAlbuns(albuns);

第二个示例代码(方法):

public void setAlbuns(ArrayList<Album> albuns){
   this.albuns = albuns;
}

结果:

Filipe 专辑:

Sedimentar - 07/04/2023 - gravado - South Park
Angry - 07/07/2020 - Ao vivo - Quicks
Sick - 30/11/2015 - gravado - Batman
Hungry - 05/12/2019 - gravado - Flash
Fever - 05/03/2015 - gravado - Batman
Fast - 10/03/2020 - Ao vivo - Quicks
Slow - 07/07/2010 - gravado - North park
Happy - 04/09/2010 - gravado - North Park
Sad - 11/06/2019 - gravado - Flash

Lilnas 专辑:

Sedimentar - 07/04/2023 - gravado - South Park
Angry - 07/07/2020 - Ao vivo - Quicks
Sick - 30/11/2015 - gravado - Batman
Hungry - 05/12/2019 - gravado - Flash
Fever - 05/03/2015 - gravado - Batman
Fast - 10/03/2020 - Ao vivo - Quicks
Slow - 07/07/2010 - gravado - North park
Happy - 04/09/2010 - gravado - North Park
Sad - 11/06/2019 - gravado - Flash
Java OOP ArrayList 方法 属性

评论

2赞 Diego Borba 8/1/2023
欢迎来到 Stack Overflow!也许你应该阅读这篇文章,然后编辑你的问题。
1赞 tgdavies 8/1/2023
不要发布文字图片。
0赞 Vinícius Eduardo Lima Lodi 8/1/2023
哦,对不起,解决了!
4赞 tgdavies 8/1/2023
lianas并且两者都包含对相同的引用,因此自然具有相同的内容。您需要获取 in 的副本才能获得所需的行为。FelipeArrayListArrayListsetAlbums
0赞 Mark Rotteveel 8/2/2023
你的标题已经回答了你自己的问题:因为你正在分配相同的数组列表。

答: 暂无答案