有没有办法获得自定义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"中获得所有独特的"敌人".这可能吗?谢谢
仅使用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,获取值并获取列表的第一个元素.
希望这大致是你正在寻找的.