Maison >Java >javaDidacticiel >Comment diviser une ArrayList Java en plusieurs ArrayLists plus petites ?
Diviser une ArrayList en plusieurs ArrayLists plus petites en Java
Diviser un tableau d'une longueur spécifique en tableaux plus petits d'une taille prédéterminée est une pratique courante tâche en programmation. Lorsqu'il s'agit de Java ArrayLists, la méthode subList(int fromIndex, int toIndex) s'avère utile.
La méthode subList() crée une vue d'une partie de la liste d'origine, en commençant au fromIndex spécifié (inclus) et en terminant au toIndex (exclusif). Cette vue est soutenue par la liste d'origine.
Pour illustrer son utilisation, considérons une ArrayList d'entiers :
List<Integer> numbers = new ArrayList<>( Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7) );
En utilisant subList(), nous pouvons créer des vues plus petites :
List<Integer> head = numbers.subList(0, 4); System.out.println(head); // Prints: [5, 3, 1, 2]
Pour séparer la liste en sous-listes non vues, nous pouvons créer de nouvelles listes basées sur le vues :
List<List<Integer>> parts = new ArrayList<>(); final int L = 3; final int N = numbers.size(); for (int i = 0; i < N; i += L) { parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L)))); }
Cela donne lieu à plusieurs ArrayLists plus petites. Cependant, les modifications apportées à toute sous-liste seront reflétées dans la liste d'origine à moins que nous créions une version non modifiable.
Par exemple :
List<Integer> numbers = Collections.unmodifiableList( Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7) ); List<List<Integer>> parts = chopped(numbers, 3); System.out.println(parts); // Prints: [[5, 3, 1], [2, 9, 5], [0, 7]] parts.get(0).add(-1); System.out.println(parts); // Prints: [[5, 3, 1, -1], [2, 9, 5], [0, 7]] System.out.println(numbers); // Prints: [5, 3, 1, 2, 9, 5, 0, 7] (unchanged)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!