我有一个项目的数组列表,每个项目都有一个将任何其他项目作为参数的方法。确保我在每对可能的项目上调用该方法而不重复它们的最有效方法是什么?(可以假设所有项目都是唯一的)。
我的代码:
public boolean hasConflict (ArrayList<Item> items) {
// For every possible pair of items...
one = items.get(i);
two = items.get(j);
if ( one.conflictsWith (two)) {
return true;
}
// If we reach the end of the list without finding a conflict
return false;
}
编辑:
one.conflictsWith (two)
将返回与 相同的值two.conflictsWith (one)
,很抱歉忘记了这一点。
该conflictsWith
方法没有比较两个值是否重复,所以很遗憾我不能使用哈希表对其进行排序。