CombinationHelper
combine
List<List<Object>> combine(List<Object> elements)
Description
Permet de calculer toutes les combinaisons possibles à partir d'une liste d'éléments.
Les petites combinaisons sont des listes d'un élément, la plus grande est la liste d'éléments elle-même.
L'ordre des éléments n'est pas important, [A, B] et [B, A] sont considérés comme équivalents.
Paramètres
elements
la liste des éléments qu'on souhaite combiner.
Retour
Une liste des combinaisons possibles.
CombinationHelper.combine(['A', 'B', 'C']) // = [['A'], ['B'], ['C'], ['A', 'B'], ['A', 'C'], ['B', 'C'], ['A', 'B', 'C']]
combine (avec éléments obligatoires)
List<List<Object>> combine(List<Object> elements, List<Object> mandatory)
Permet de calculer toutes les combinaisons possibles à partir d'une liste d'éléments en précisant une sous-liste des éléments obligatoires. Ainsi, les combinaisons ne contenant pas les éléments obligatoires ne seront pas retenues.
La petite combinaison est la sous-liste des éléments obligatoires, la plus grande est la liste d'éléments elle-même.
L'ordre des éléments n'est pas important, [A, B] et [B, A] sont considérés comme équivalents.
Paramètres
elements
la liste des éléments qu'on souhaite combiner.mandatory
la sous-liste des éléments obligatoires.
Retour
Une liste des combinaisons possibles.
CombinationHelper.combine(['A', 'B', 'C'], ['A']) // = [['A'], ['A', 'B'], ['A', 'C'], ['A', 'B', 'C']]
CombinationHelper.combine(['A', 'B', 'C'], ['A', 'B']) // = [['A', 'B'], ['A', 'B', 'C']]
combine (avec dépendances)
List<List<Object>> combine(List<Object> elements, Map<Object, List<Object>> dependencies)
Permet de calculer toutes les combinaisons possibles à partir d'une liste d'éléments en précisant une Map
des
dépendances des éléments entre eux. Ainsi, les combinaisons dont les dépendances des éléments qui la composent ne
sont pas satisfaites ne seront pas retenues.
La petite combinaison est la sous-liste contenant l'élément ayant le moins de dépendances + ses dépendances, la plus grande est la liste d'éléments elle-même.
L'ordre des éléments n'est pas important, [A, B] et [B, A] sont considérés comme équivalents.
Paramètres
elements
la liste des éléments qu'on souhaite combiner.dependencies
la map des dépendances entre éléments.
Retour
Une liste des combinaisons possibles.
// A et B n'ont pas de dépendances, C dépend de B
CombinationHelper.combine(['A', 'B', 'C'], ['C': ['B']]) // = [['A'], ['B'], ['A', 'B'], ['B', 'C'], ['A', 'B', 'C']]
// A n'a pas de dépendances, B dépend de A, C dépend de A et B
CombinationHelper.combine(['A', 'B', 'C'], ['B': ['A'], 'C': ['A', 'B']]) // = [['A'], ['A', 'B'], ['A', 'B', 'C']]
combine (avec éléments obligatoires et dépendances)
List<List<Object>> combine(List<Object> elements, List<Object> mandataory, Map<Object, List<Object>> dependencies)
Permet de calculer toutes les combinaisons possibles à partir d'une liste d'éléments en précisant une sous-liste des
éléments obligatoires et une Map
des dépendances des éléments entre eux.
Ainsi, les combinaisons ne contenant pas les éléments obligatoires et dont les dépendances des éléments qui la composent
ne sont pas satisfaites ne seront pas retenues.
La petite combinaison est la sous-liste contenant les éléments obligatoires et l'élément ayant le moins de dépendances
- ses dépendances, la plus grande est la liste d'éléments elle-même.
L'ordre des éléments n'est pas important, [A, B] et [B, A] sont considérés comme équivalents.
Paramètres
elements
la liste des éléments qu'on souhaite combiner.mandatory
la sous-liste des éléments obligatoires.dependencies
la map des dépendances entre éléments.
Retour
Une liste des combinaisons possibles.
// A est obligatoire, A et B n'ont pas de dépendances, C dépend de B
CombinationHelper.combine(['A', 'B', 'C'], ['A'], ['C': ['B']]) // = [['A'], ['A', 'B'], ['A', 'B', 'C']]