gpt4 book ai didi

java - 不冗余地比较相同的列表

转载 作者:行者123 更新时间:2023-11-29 05:09:37 24 4
gpt4 key购买 nike

我有这个代码

public void update(List<GameObject> objects) {
for (GameObject object1 :objects){
for (GameObject object2 : objects){
if (!object1.equals(object2)) object1.collisionHandling(object2);
}
}

我需要比较所有项目,但我显然不想将每个列表项目与其自身进行比较;所以第 1 项和第 1 项,我也不想将第 2 项与第 3 项进行比较,然后在下一个循环中将第 3 项与第 2 项进行比较,等等。大多数示例使用编号数组 (i=0, i<5, i++) 但我有一个列表。我将如何着手提高这段代码的效率?


编辑:我现在可以忽略循环中的相同项目,只需要停止对称比较。 2-3、3-2等

最佳答案

进行这种三角比较的标准方法是:

for (int indexI = 0; indexI < objects.size(); indexI++) {
GameObject object1 = objects.get(indexI);
for (int indexJ = indexI + 1; indexJ < objects.size(); indexJ++) {
GameObject object2 = objects.get(indexJ);
object1.collisionHandling(object2);
}
}

请注意 indexJ 从 indexI + 1 到 size()。

关于java - 不冗余地比较相同的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29105555/

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