bonjour à tous,

je voudrais créer une fonction qui découpe une collection en en plusieurs sous collection de taille fixe, du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Set<UUID> set = new HashSet<UUID>();
 
//opérations quelconques ( ...)
 
 
Set<Set<UUID> decoupee= decoupage(set, 20);