アイテムの配列リストがあり、それぞれに他のアイテムをパラメーターとして受け取るメソッドがあります。それらを繰り返さずに、可能なすべてのアイテムのペアでメソッドを確実に呼び出す最も効率的な方法は何でしょうか? (すべてのアイテムは一意であると見なすことができます)。
私のコード:
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
メソッドは、2 つの値が重複しているかどうかを比較していないため、残念ながら、ハッシュ テーブルを使用して並べ替えることができません。