我正在编写一个使用Entitys 数组的基于文本的生存模拟器.的Entity类包含关于每个实体的数据,诸如能量,水合,并士气.我开始结束项目,但我遇到了问题.为了编写checkStatus()方法,我需要有一个if语句来检查所有实体上的Entity [].isAlive,即使我不知道数组有多长.简而言之,我如何使用if语句来检查数组的所有成员的值?我知道我可能不得不使用一个for循环迭代检查成员,用array.getLength.到目前为止,我只能检查单个类中的变量.我见过类似的问题,但他们并没有得到我想要的东西.
PS我使用的是基本的Java,没有框架或库.
伪代码,演示了我正在寻找的东西
if Entity[ALL-MEMBERS].isAlive {
gameOver = true;
}
Run Code Online (Sandbox Code Playgroud)
Java 6,7和8:
public boolean areAllAlive(Entity[] entities) {
if(entities == null || entities.length == 0) {
return false; //?
}
for(Entity e : entities) {
if(!e.isAlive()) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
Java 8,使用流/函数:
public boolean areAllAlive(Entity[] entities) {
if(entities == null || entities.length == 0) {
return false; //?
}
return Arrays.stream(entities).allMatch(e -> e.isAlive());
}
Run Code Online (Sandbox Code Playgroud)