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