自定义arraylist <mygames>变得与众不同

mar*_*kus -3 java android

有没有办法获得自定义arraylist的独特价值?

public class mystatistic extends BaseActivity {
    public String objectid;
    public String playerid;
    public String playername;
    public String enemyid;
    public String enemyname;
    public String question;


    public mystatistik(String objectid, String playerid, String playername, String enemyid, String enemyname, String question) {
        this.objectid = objectid;
        this.playerid= playerid;
        this.playername= playername;
        this.enemyid= enemyid;
        this.enemyname= enemyname;
        this.question= question;
    }
Run Code Online (Sandbox Code Playgroud)

添加到arraylist

mystatistic mystatistic2 = new mystatistik(objectid,playerid, playername, enemyid, enemyname,question);
mystatisticslist.add(mystatistic2);
Run Code Online (Sandbox Code Playgroud)

现在我想从我的arraylist"mystatisticslist"中获得所有独特的"敌人".这可能吗?谢谢

Roe*_*erg 7

仅使用ArrayList是不可能的.要么实现自己的方法,可以这么简单:

private List<mystatistik> getAllUniqueEnemies(List<mystatistik> list){
    List<mystatistik> uniqueList = new ArrayList<mystatistik>();
    List<String> enemyIds = new ArrayList<String>();
    for (mystatistik entry : list){
        if (!enemyIds.contains(entry.getEnemyId())){
            enemyIds.add(entry.getEnemyId());
            uniqueList.add(entry);
        }
    }
    return uniqueList;
}
Run Code Online (Sandbox Code Playgroud)

或者使用HashMap<String, List<mystatistik>>eneyId是键的位置,以及mystatistik(具有相同的enemyId)值的列表.如果你想获得一个独特的敌人列表,只需循环遍历地图的keySet,获取值并获取列表的第一个元素.

希望这大致是你正在寻找的.