public ItemsetZart cloneItemSetMinusAnItemset(ItemsetZart itemsetToNotKeep) { ItemsetZart itemset = new ItemsetZart(); for (ItemZart item : items) { if (!itemsetToNotKeep.contains(item)) { itemset.addItem(item); } } return itemset; }
// pour Apriori public ItemsetZart cloneItemSetMinusOneItem(ItemZart itemsetToRemove) { ItemsetZart itemset = new ItemsetZart(); for (ItemZart item : items) { if (!item.equals(itemsetToRemove)) { itemset.addItem(item); } } return itemset; }
public boolean isEqualTo(ItemsetZart itemset2) { if (items.size() != itemset2.items.size()) { return false; } for (ItemZart val : items) { if (!itemset2.contains(val)) { return false; } } return true; }
// Pour l'algorithme Apriori public ItemZart shareFirstIItemsOnly(ItemsetZart itemset2) { // Pourrait être optimisé... en sachant que les listes sont ordonnées. boolean shareIminus1 = true; // ils doivent avoir les premiers i-1 éléments en commun for (int j = 0; j < items.size() - 1; j++) { if (!itemset2.get(j).equals(get(j))) { shareIminus1 = false; break; } } if (!shareIminus1) { return null; } if (itemset2 .items .get(items.size() - 1) .equals(items.get(items.size() - 1))) { // le dernier élément doit être différent! return null; } if (items.get(items.size() - 1).getId() > itemset2.items.get(items.size() - 1).getId()) { return null; } return itemset2.get(items.size() - 1); }
public String toString() { return itemset1.toString() + " ==> " + itemset2.toString(); }