# Posibles combinaciones de una lista

I have an arraylist of objects that I want to create all possible combinations (according to a simple set of rules). Each object that is stored in the list holds a squadNumber and a string. Here is an example of a typical list I am storing:

``````0: 1, A
1: 1, B
2: 2, A
3: 2, B
4: 3, C
5: 3, D
6: 4, C
7: 4, D
``````

I want to get all the combinations where each squadNumber can only be present once, for example: (1,A),(2,A),(3,C),(4,C) then the next combination would be (1,A),(2,A),(3,C),(4,D). How would I go about this in java? Usually I would use a nested loop, but the fact that it's all being stored in one list complicates things for me.

Thanks, paintstripper

preguntado el 28 de agosto de 11 a las 03:08

Utilizar `Set`, Tales como `HashSet`, not a List. Sets guarantee uniqueness. -

## 1 Respuestas

Algorithm is following:

1. Split all squads by numbers. So we have list with squads for 1, another list for squads 2, etc.
2. Run dfs. At nth step we add squads with nth number.

Código

``````// Split squads by numbers, so we can iterate through each number independently.
}
}
return res;
}

// Iterating through each squad with number squadNumbers[position] and try to add to stack, at the end pop it from stack.

private void dfs(int position) {
System.out.println(stack.toString());
} else {
dfs(position + 1);
stack.pop();
}
}
}