Java 如何在for循环中选择除当前元素之外的所有元素?
我所处的情况是,我希望在循环的每次交互中处理当前元素与循环中其他元素的交互,而不是当前元素本身,以便检查元素与其他元素的交点。 更具体地说,我实现了一个图,其中每个Java 如何在for循环中选择除当前元素之外的所有元素?,java,for-loop,graph,nodes,overlap,Java,For Loop,Graph,Nodes,Overlap,我所处的情况是,我希望在循环的每次交互中处理当前元素与循环中其他元素的交互,而不是当前元素本身,以便检查元素与其他元素的交点。 更具体地说,我实现了一个图,其中每个节点都与数组列表关联 到目前为止,我所做的工作如下: for (ArrayList<Set<Integer>> ds : allArrays) { numberOfOverlaps = 0; allArraysCopy = allArrays;
节点
都与数组列表
关联
到目前为止,我所做的工作如下:
for (ArrayList<Set<Integer>> ds : allArrays) {
numberOfOverlaps = 0;
allArraysCopy = allArrays;
allArraysCopy.remove(ds);
if (itNodes.hasNext())
currentNode = itNodes.next();
for (ArrayList<Set<Integer>> otherDs : allArraysCopy){
if (arraySetIntersect(ds,otherDs)) {
numberOfOverlaps++;
neighborsOverlaps.put(numberOfOverlaps,currentNode);
}
}
}
for(ArrayList ds:allArrays){
重叠数=0;
allArraysCopy=allArrays;
allArraysCopy.remove(ds);
if(itNodes.hasNext())
currentNode=itNodes.next();
对于(ArrayList otherDs:allArraysCopy){
if(ArraySetterSect(ds,其他ds)){
重叠数++;
邻域重叠.put(numberOfOverlaps,currentNode);
}
}
}
在我的代码中,我将节点的索引设置为与set数组的索引相关联:例如setds
的第一个数组与第一个节点相关联
为了检查for环路中的其他交叉点,线路allArraysCopy.remove(ds)代码>好的方法?
谢谢。这看起来太复杂了。使用一个带有索引的经典for循环,并记住不要检查该索引。但对我来说,最大的问题是为什么需要在内环中再次循环整个数组,现在您正在检查a
是否与b
相交,但也检查b
是否与a
相交,所以我想知道是否真的需要这个双重检查?如果没有,那么您只需要在内部循环中从当前索引向前检查endifb
intersectsa
是另一个迭代,我需要评估循环正在处理的当前节点的numberOfOverlaps
,但是您能详细说明您的主张吗?好,然后跳过我评论中的这一部分,但使用循环的旧样式请详细说明如何不对循环中的当前索引进行检查。if(outerIndex==innerIndex){continue;}