我正在玩游戏,玩家可以获得/制作某些具有特定价值的物品。例如,我们有一个名为" 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。
答案 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
}
}