Heim  >  Artikel  >  Java  >  Wie teile ich eine ArrayList in mehrere kleinere ArrayLists in Java auf?

Wie teile ich eine ArrayList in mehrere kleinere ArrayLists in Java auf?

Barbara Streisand
Barbara StreisandOriginal
2024-11-25 03:22:11230Durchsuche

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

Aufteilen einer ArrayList in mehrere kleinere ArrayLists in Java

In Java erfordert das Aufteilen einer ArrayList in mehrere kleinere ArrayLists einer bestimmten Größe eine Lösung Dies ermöglicht eine effiziente Portionierung und erstellt möglicherweise nicht sichtbare Unterlisten.

Verwenden subList()

Ein Ansatz besteht darin, die Methode subList(int fromIndex, int toIndex) zu verwenden, um eine Ansicht eines Teils der ursprünglichen Liste zu erhalten. Diese Methode erstellt keine neue Liste, sondern stellt vielmehr einen Verweis auf ein Segment innerhalb der vorhandenen ArrayList bereit.

Beispiel:

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

Erstellen von Nicht- Unterlisten anzeigen

Wenn Sie jedoch möchten, dass die gehackten Listen unabhängig sind und keine Ansicht der ursprünglichen Liste darstellen, können Sie dies tun Erstellen Sie eine neue ArrayList aus der Unterliste.

Beispiel:

// 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!)

Das obige ist der detaillierte Inhalt vonWie teile ich eine ArrayList in mehrere kleinere ArrayLists in Java auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn