Maison > Java > javaDidacticiel > le corps du texte

Comment diviser une ArrayList Java en plusieurs ArrayLists plus petites ?

Mary-Kate Olsen
Libérer: 2024-11-19 04:33:02
original
391 Les gens l'ont consulté

How to Split a Java ArrayList into Multiple Smaller ArrayLists?

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

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

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

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

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal