Diviser une ArrayList en plusieurs sous-listes
En Java, vous pouvez partitionner efficacement une ArrayList en sous-listes plus petites et de même taille. Ceci est utile dans les scénarios où vous devez traiter ou gérer des données en petits morceaux.
Utiliser subList() pour créer des vues
La méthode subList() de la classe ArrayList vous permet d'obtenir une vue d'une partie de la liste originale dans la plage spécifiée. Les appels à subList() ne créent pas de nouvelle liste mais renvoient une vue dans la liste existante. Toutes les modifications apportées à la sous-liste sont reflétées dans la liste d'origine et vice versa.
List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7)); List<Integer> head = numbers.subList(0, 4); // View from index 0 to index 3 (exclusive) List<Integer> tail = numbers.subList(4, 8); // View from index 4 to index 7 (exclusive)
Création de sous-listes sans vue
Si vous exigez que les sous-listes soient indépendantes de la liste originale, vous pouvez créer explicitement de nouveaux objets ArrayList à partir des vues de sous-liste.
List<List<Integer>> chopped = new ArrayList<>(); for (int i = 0; i < numbers.size(); i += L) { List<Integer> sublist = new ArrayList<>( numbers.subList(i, Math.min(numbers.size(), i + L)) ); chopped.add(sublist); }
Cette approche crée des copies complètes de la sous-liste, en garantissant que les modifications apportées aux sous-listes hachées n'affectent pas la liste d'origine.
Exemple d'utilisation
Considérons une liste d'entiers appelés nombres contenant [5, 3, 1, 2, 9, 5, 0, 7]. Vous pouvez diviser cette liste en trois sous-listes de taille 3 en utilisant le code suivant :
List<List<Integer>> choppedLists = chopped(numbers, 3);
La variable hachéLists contiendra désormais trois listes : [[5, 3, 1], [2, 9, 5] , [0, 7]]. Vous pouvez modifier davantage ces sous-listes sans altérer la liste de numéros d'origine.
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!