gpt4 book ai didi

Java - 如何检查整个数组的交集

转载 作者:行者123 更新时间:2023-12-02 12:11:40 25 4
gpt4 key购买 nike

我不确定如何真正问这个问题,所以我刚刚创建了一个新线程。我想看看是否可以立即检查我的球是否与数组中的任何矩形相交。

if(ball.getBounds2D().intersects(bricksEasy)) <-- bricks easy is a 2D array of rectangles

现在我避免只迭代整个数组以避免延迟。我可以使用任何解决方案吗?欣赏它。

最佳答案

Right now I'm avoiding just iterating through the whole array to avoid delay. Any solutions I could use?

如果一检测到碰撞就停止迭代,不会造成任何延迟。

如果您操作 Rectangle2D 实例,则可以使用此重载实例方法:

public boolean intersects(Rectangle2D r)

要在匹配完成后立即退出迭代,您可以使用 anyMatch() 谓词:

Rectangle2D ball2D = ...;
Rectangle2D[] bricksEasy = ...;
boolean isAnyIntersection = Arrays.stream(bricksEasy).anyMatch(brick -> brick.intersects(ball2D));

您还可以通过使用以 ball2D 变量作为目标的方法引用来实现:

Rectangle2D ball2D = ...;
Rectangle2D[] bricksEasy = ...;
boolean isAnyIntersection = Arrays.stream(bricksEasy).anyMatch(ball2D::intersects);

关于Java - 如何检查整个数组的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46502147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com