【发布时间】:2019-08-29 23:27:30
【问题描述】:
我有一个 ArrayList,每次运行程序时都会由随机数量的 GameObj 实例填充。
如果一个对象与 ArrayList 中的另一个对象接触,它将设置一个名为 visible 的布尔值,从 true 到 false。
有没有办法通过以下方式检查ArrayList中的所有item实例是否都设置为false:
XXXX.visible = false
一旦我可以检查它们是否都设置为false。
【问题讨论】:
-
list.stream().allMatch -
bool allBricks = true; for(GameObj brick : yourList) { if(brick.visible) { allBricks = false; break; } } if(allBricks) { System.out.println("Well Done, Game over."); } -
在这种情况下,另一种方法是设置一个计数器,例如
int bricksHits,当砖块被击中时它会增加。然后你可以使用一个简单的 if 语句,例如if(bricksHit >= totalBricks) { ... },它只检查一次,而不是循环整个列表(在最坏的情况下)。 -
是的,让我们把函数式编程解决方案交给
Boolean和ArrayList的新手。