Maison > Java > javaDidacticiel > Comment diviser efficacement une ArrayList en plusieurs sous-listes en Java ?

Comment diviser efficacement une ArrayList en plusieurs sous-listes en Java ?

DDD
Libérer: 2024-11-15 08:34:02
original
713 Les gens l'ont consulté

How to Efficiently Split an ArrayList into Multiple Sublists in Java?

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)
Copier après la connexion

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);
}
Copier après la connexion

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);
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal