Maison > Java > javaDidacticiel > Comment diviser une ArrayList en plusieurs ArrayLists plus petites en Java ?

Comment diviser une ArrayList en plusieurs ArrayLists plus petites en Java ?

Barbara Streisand
Libérer: 2024-11-25 03:22:11
original
288 Les gens l'ont consulté

How to split an ArrayList into multiple smaller ArrayLists in Java?

Diviser une ArrayList en plusieurs ArrayLists plus petites en Java

En Java, diviser une ArrayList en plusieurs ArrayLists plus petites d'une taille spécifiée nécessite une solution qui permet un portionnement efficace et crée potentiellement une non-vue sous-listes.

Utilisation de subList()

Une approche consiste à utiliser la méthode subList(int fromIndex, int toIndex) pour obtenir une vue d'une partie de la liste d'origine . Cette méthode ne crée pas de nouvelle liste mais fournit plutôt une référence à un segment dans la ArrayList existante.

Exemple :

List<Integer> numbers = new ArrayList<>(Arrays.asList(5,3,1,2,9,5,0,7));

List<Integer> head = numbers.subList(0, 4);
List<Integer> tail = numbers.subList(4, 8);

System.out.println(head); // prints "[5, 3, 1, 2]"
System.out.println(tail); // prints "[9, 5, 0, 7]"
Copier après la connexion

Création de non- Afficher les sous-listes

Cependant, si vous avez besoin que les listes découpées soient indépendantes et non une vue de la liste d'origine, vous peut créer une nouvelle ArrayList à partir de la sous-Liste.

Exemple :

// chops a list into non-view sublists of length L
static <T> List<List<T>> chopped(List<T> list, final int L) {
    List<List<T>> parts = new ArrayList<>();
    final int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

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]" (unmodified!)
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