Heim > Java > javaLernprogramm > Wie kann man eine ArrayList in Java effizient in mehrere Unterlisten aufteilen?

Wie kann man eine ArrayList in Java effizient in mehrere Unterlisten aufteilen?

DDD
Freigeben: 2024-11-15 08:34:02
Original
684 Leute haben es durchsucht

How to Efficiently Split an ArrayList into Multiple Sublists in Java?

Aufteilen einer ArrayList in mehrere Unterlisten

In Java können Sie eine ArrayList effizient in kleinere, gleich große Unterlisten unterteilen. Dies ist in Szenarien nützlich, in denen Sie Daten in mundgerechten Blöcken verarbeiten oder verwalten müssen.

Verwenden von subList() zum Erstellen von Ansichten

Die subList()-Methode von Mit der ArrayList-Klasse können Sie eine Ansicht eines Teils der Originalliste innerhalb des angegebenen Bereichs erhalten. Aufrufe von subList() erstellen keine neue Liste, sondern geben eine Ansicht in die vorhandene Liste zurück. Alle an der Unterliste vorgenommenen Änderungen werden in der Originalliste widergespiegelt und umgekehrt.

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

List<Integer> head = numbers.subList(0, 4); // View from index 0 to index 3 (exclusive)
List<Integer> tail = numbers.subList(4, 8); // View from index 4 to index 7 (exclusive)
Nach dem Login kopieren

Erstellen von nicht sichtbaren Unterlisten

Wenn Sie möchten, dass die Unterlisten unabhängig sind der ursprünglichen Liste können Sie explizit neue ArrayList-Objekte aus den Unterlistenansichten erstellen.

List<List<Integer>> chopped = new ArrayList<>();
for (int i = 0; i < numbers.size(); i += L) {
    List<Integer> sublist = new ArrayList<>(
        numbers.subList(i, Math.min(numbers.size(), i + L))
    );
    chopped.add(sublist);
}
Nach dem Login kopieren

Dieser Ansatz erstellt tiefe Kopien der Unterliste und stellt sicher, dass Änderungen an den zerhackten Unterlisten keine Auswirkungen auf die Originalliste haben.

Beispielverwendung

Betrachten Sie eine Liste von ganzen Zahlen, die als Zahlen bezeichnet werden und [5, 3, 1, 2, 9, 5, 0, 7] enthalten. Sie können diese Liste mit dem folgenden Code in drei Unterlisten der Größe 3 aufteilen:

List<List<Integer>> choppedLists = chopped(numbers, 3);
Nach dem Login kopieren

Die Variable crushedLists enthält jetzt drei Listen: [[5, 3, 1], [2, 9, 5] , [0, 7]]. Sie können diese Unterlisten weiter ändern, ohne die ursprüngliche Nummernliste zu ändern.

Das obige ist der detaillierte Inhalt vonWie kann man eine ArrayList in Java effizient in mehrere Unterlisten aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage