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
DDDoriginal
2024-11-15 08:34:02749parcourir

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)

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!

Déclaration:
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