首页 > 解决方案 > 通过参数从自定义 ArrayList 中删除重复项

问题描述

我面临一个我无法解决的问题:

ArrayList从电话里读到:

ArrayList<Game> gameResult = writeRead.getArrayList(this);

我将gamer每个对象game放入一个新的ArrayList

ArrayList<Gamer> gamerList = new ArrayList<>();
for (int i = 0; i < gameResult.size(); i++) {
    gamerList.add(gameResult.get(i).getWinnerGamer());
}

现在,我想要的是:

这是关于一个带有 custom 的排行榜活动ArrayList,但我不是来做的。

我所有的代码:

private void setGamerList() {

    ArrayList<Game> gameResult = writeRead.getArrayList(this);
    ArrayList<Gamer> gamerList = new ArrayList<>();
    ArrayList<Gamer> gamerNoDuplicate = new ArrayList<>();

    if (gameResult != null) {

        for (int i = 0; i < gameResult.size(); i++) {
            gamerList.add(gameResult.get(i).getWinnerGamer());
        }
    }

    Log.i(TAG, "--------------------------------");

    Collections.sort(mGamerList, (o1, o2) ->
        o2.getLeaderboardScore().compareTo(o1.getLeaderboardScore()));
}

标签: javaandroidarraylist

解决方案


覆盖Gamer 对象类的equals 和 hashCode 方法

然后在将对象添加到 ArrayList 之前,检查Arraylist.contains(),如果是,那么您可以调用ArrayList.indexOf()方法来获取该对象实例ArrayList,增加 LeaderPoints 的值并调用ArrayList.set()以将实例设置回相同的位置。


推荐阅读