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

Comment diviser une ArrayList en ArrayLists plus petites en Java ?

DDD
DDDoriginal
2024-11-15 03:39:02510parcourir

How to Split an ArrayList into Smaller ArrayLists in Java?

Diviser une ArrayList en ArrayList plus petites en Java

Diviser une grande ArrayList en plusieurs ArrayLists plus petites est essentiel dans divers scénarios de programmation. Pour y parvenir en Java, vous pouvez utiliser la méthode subList(int fromIndex, int toIndex).

Méthode subList

La méthode subList vous permet d'obtenir une partie de la liste originale. Il crée une vue de la plage d'éléments spécifiée, allant de fromIndex jusqu'à toIndex sans inclure.

Exemple d'utilisation

Pour illustrer, considérons le code suivant :

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]"

Création de sous-listes non vues

Si vous exigez que les listes découpées soient des non-vues, créez simplement de nouvelles listes à partir des sous-listes. Voici un 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]]"

Cette méthode renvoie une liste de sous-listes non affichées, vous permettant de les modifier sans affecter la liste 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