Android Studio:包含项目(对象)的列表

时间:2017-02-27 16:06:14

标签: java android arrays oop

我正在玩游戏,玩家可以获得/制作某些具有特定价值的物品。例如,我们有一个名为" Tool"并且我想创建某种数组/列表,我可以在其中添加新项目并为每个项目分配特定值。

除此之外,我想以某种方式从列表中获取具有特定值的所有对象(例如,获取所有具有boolean owned = true且对所有值/ stats求和的对象)

这是我到目前为止所得到的:

工具类

class Tool extends Item{
private int fight, resource, building, crafting, clothing;


public Tool(int ID, String name, boolean owned, int fight, int resource, int building, int crafting, int clothing){
    this.setID(ID);
    this.setName(name);
    this.setOwned(owned);
    this.setFight(fight);
    this.setResource(resource);
    this.setBuilding(building);
    this.setCrafting(crafting);
    this.setClothing(clothing);
}

之后的一群吸气者和二传手......

游戏开始()(创建所有项目并将其设置为拥有= false)

public void StartGame() {

    // TOOLS

    ArrayList<Tool> tools = new ArrayList<>(); //ID, Name, Owned, Fight, Resource, Building, Crafting, Clothing
    tools.add(new Tool(1,"Hatchet",false,0,0,0,0,0));

更具体地说,我想创建一个函数,从列表中获取所有拥有的= true对象并总结它们的值(例如,将所有值相加:战斗,资源,构建等)。

P.S。这是我第一次尝试使用对象和类进行编码,而且我对Java相对较新。尝试找到解决方案,但并不知道如何搜索,几天后我放弃了,决定问StackOverflow。

2 个答案:

答案 0 :(得分:3)

您可能希望像Tool一样遍历ArrayList中的// A counter to keep count int ownedSum = 0; // For every Tool (t) in the list of Tools (tools) for(Tool t : tools){ // Check your condition e.g: if owned is true if(t.getOwned()){ ownedSum += // put getters here for the values to sum up } } 个对象:

$event

答案 1 :(得分:0)

这样做。

int sum=0;
for*(int i=0;i<tools.lenght;i++){
if(tools.get(i).owned==true){
sum=sum+tools.get(i).getFight();//here you can chnage as per your requirment

}
}