Générics et découpage de collections
bonjour à tous,
je voudrais créer une fonction qui découpe une collection en en plusieurs sous collection de taille fixe, du style :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
List<String> list = new ArrayList<String>();
//opérations sur la listes (add, ...)
List<List<String> listeDecoupee= decoupage(list, 5);
//parcours pour afficher tous les elements
for(List<String> subList : list) {
for(String str : subList)
sysout(str)
} |
pour l'instant si je n'utilise que des List ça fonctionne impec avec ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public static <T> List<List<T>> splitIntoChunks(List<T> list, int chunkSize) {
if (chunkSize <= 0)
throw new IllegalArgumentException("chunkSize must be greater than 0.");
List<List<T>> retVal = new ArrayList<List<T>>();
int index = 0;
while (index < list.size()) {
int count = list.size() - index > chunkSize ? chunkSize : list.size() - index;
retVal.add(list.subList(index, index+count));
index += chunkSize;
}
return retVal;
} |
j'aimerais donc généraliser ça pour tout type de collection genre
Code:
1 2 3 4 5 6
| Set<UUID> set = new HashSet<UUID>();
//opérations quelconques ( ...)
Set<Set<UUID> decoupee= decoupage(set, 20); |