2 要素セットから k 要素アイテムセットを生成するために、次のコードを作成しました。2 つの要素セットは、clist1 および clist2 として、candidateItemsetGen に渡されます。
public static void candidateItemsetGen(ArrayList<Integer> clist1, ArrayList<Integer> clist2)
{
for(int i = 0; i < clist1.size(); i++)
{
for(int j = i+1; j < clist2.size(); j++)
{
for(int k = 0; k < clist1.size()-2; k++)
{
int r = clist1.get(k).compareTo(clist2.get(k));
if(r == 0 && clist1.get(k)-1 == clist2.get(k)-1)
{
** candidateItemset.add(clist1.get(i), clist1.get(clist1.size()-1), clist2.get(clist2.size()-1));
}
}
}
}
// return candidateItemset;
}
k-itemset を作成する条件は、clist1(i) == clist2(i) であり、i = 1,...,k-2 および clist1(k-2) != clist2(k-2) です。しかし、**を入れたコードにエラーがあります。どうすればこれを修正できますか? ロジックは、この関数が候補アイテムセットを生成し、それが他の候補アイテムセットを生成するための入力として再び使用されるというものです。