gpt4 book ai didi

java - 制作副本后列表 <> 对象更改

转载 作者:太空狗 更新时间:2023-10-29 15:55:35 25 4
gpt4 key购买 nike

我有以下代码,我在其中创建了一个名为 users 的 List<> 对象。我将用户对象设置为不同的 List<>。然而,只要我向用户对象添加一些内容,另一个 List<> 对象的大小也会发生变化吗?这是什么魔法?这应该是这样吗,我以为我只是在复制另一个 List<> 对象。

当我运行此代码时,此日志显示:好友数量:0好友数量:1好友数量:1

users = new ArrayList<Profile>(); // Friends of this player
users = game.getUserProfile().getProfileFriends();
game.getGameLog().d(classTAG, "Amount of Friends: " + game.getUserProfile().getProfileFriends().size());
users.add(game.getUserProfile());
game.getGameLog().d(classTAG, "Amount of Friends: " + game.getUserProfile().getProfileFriends().size());
this.sortUsersAccordingToXP();
game.getGameLog().d(classTAG, "Amount of Friends: " + game.getUserProfile().getProfileFriends().size());

注意:这不是所有代码,但代码会影响我的问题,一旦我删除 add 方法,另一个 List<> 的大小就不会增加(当然用户也反对)。

最佳答案

users = game.getUserProfile().getProfileFriends();
复制对列表的引用 - 而不是列表!
使用 ArrayList 的构造函数创建一个浅拷贝。

关于java - 制作副本后列表 <> 对象更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com