复制后列出<>对象更改

Luk*_*lor 2 java android list

我有以下代码,我在其中创建一个名为users的List <>对象.我将users对象设置为不同的List <>.然而,只要我向users对象添加内容,另一个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());
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*lze 6

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