Java 如何检查数组的所有成员
我正在编写一个基于文本的生存模拟器,它使用一组Java 如何检查数组的所有成员,java,arrays,Java,Arrays,我正在编写一个基于文本的生存模拟器,它使用一组实体s。实体类包含关于每个实体的数据,例如能量、水合作用和士气。我正要结束这个项目,但我有个问题。为了编写一个checkStatus()方法,我需要一个if语句来检查实体[]。即使我不知道数组的长度,它也会在所有实体上运行。简而言之,如何使用if语句检查数组中所有成员的值?我知道我可能必须使用for循环,使用数组.getLength迭代检查成员。到目前为止,我只能检查单个类中的变量。我也看到过类似的问题,但它们并不完全符合我的要求 另外,我使用的是基
实体
s。实体
类包含关于每个实体的数据,例如能量、水合作用和士气。我正要结束这个项目,但我有个问题。为了编写一个checkStatus()
方法,我需要一个if语句来检查实体[]。即使我不知道数组的长度,它也会在所有实体上运行。简而言之,如何使用if语句检查数组中所有成员的值?我知道我可能必须使用for
循环,使用数组.getLength
迭代检查成员。到目前为止,我只能检查单个类中的变量。我也看到过类似的问题,但它们并不完全符合我的要求
另外,我使用的是基本Java,没有框架或库
演示我要查找的内容的伪代码
if Entity[ALL-MEMBERS].isAlive {
gameOver = true;
}
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;
}
Java 8,使用流/函数:
public boolean areAllAlive(Entity[] entities) {
if(entities == null || entities.length == 0) {
return false; //?
}
return Arrays.stream(entities).allMatch(e -> e.isAlive());
}
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;
}
Java 8,使用流/函数:
public boolean areAllAlive(Entity[] entities) {
if(entities == null || entities.length == 0) {
return false; //?
}
return Arrays.stream(entities).allMatch(e -> e.isAlive());
}
首先,因为您可能不知道要使用的实体数量,所以ArrayList可能是更好的选择。那么是的,您应该使用增强的for循环:
List<Entity> list = new ArrayList<>();
public void addEntities(){
//add Entities here
}
public boolean ifAlive(){
for (Entity e: list){
if (!e.isAlive()){
return false;
}
}
return true;
}
List List=new ArrayList();
公共无效补遗(){
//在此处添加实体
}
public-live(){
对于(实体e:列表){
如果(!e.isAlive()){
返回false;
}
}
返回true;
}
或者类似的东西。首先,由于您可能不知道要使用的实体数量,因此ArrayList可能是更好的选择。那么是的,您应该使用增强的for循环:
List<Entity> list = new ArrayList<>();
public void addEntities(){
//add Entities here
}
public boolean ifAlive(){
for (Entity e: list){
if (!e.isAlive()){
return false;
}
}
return true;
}
List List=new ArrayList();
公共无效补遗(){
//在此处添加实体
}
public-live(){
对于(实体e:列表){
如果(!e.isAlive()){
返回false;
}
}
返回true;
}
或者类似的东西。假设数组是实体的数组,请尝试以下操作:
for (int i = 0; i < array.length; i++) {
Entity entity = array[i];
if (entity.isAlive) {
gameOver = true;
//your code here
}
}
for(int i=0;i
假设数组是实体的数组,请尝试以下操作:
for (int i = 0; i < array.length; i++) {
Entity entity = array[i];
if (entity.isAlive) {
gameOver = true;
//your code here
}
}
for(int i=0;i
为了使Java 8更加友好,您可以用方法引用替换e->e.isAlive()
:Entity::isAlive
isAlive
不是一个方法;它是一个boolean
,由其他类更新。为了使它更加Java 8友好,您可以将e->e.isAlive()
替换为方法引用:Entity::isAlive
isAlive
不是一个方法;它是一个布尔值
,由其他类更新。