Java saraksti ļauj mums uzturēt sakārtotu objektu kolekciju. Elementu dublikātus, kā arī nulles elementus var saglabāt arī Java sarakstā. Saraksta saskarne ir daļa no java.util pakotni, un tā pārmanto kolekcijas saskarni. Tas saglabā ievietošanas secību.
Ir vairāki veidi, kā Java programmā atkārtot sarakstu. Tie ir apspriesti tālāk:
Metodes:
- Cilpu izmantošana (naivā pieeja)
- Izmantojot Iterators
- Izmantojot Saraksta iterators
- Izmantojot lambda izteiksmi
- Izmantojot stream.forEach()
- Izmantojot sadalītāju (Java 8 un jaunākas versijas)
1. A metode: vienkārša cilpai
Katram elementam var piekļūt, izmantojot iterāciju, izmantojot vienkāršu for cilpu. Indeksam var piekļūt, izmantojot indeksu kā cilpas mainīgo.
Sintakse:
for (i = 0; i>
Zemāk ir šīs metodes piemērs:
Java
// Java Program to iterate over List // Using simple for loop // Importing all classes of // java.util package import java.util.*; // CLass class GFG { // Main driver method public static void main(String args[]) { // Creating a ArrayList ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Cilpai, kas paredzēta iterēšanai sarakstā (int i = 0; i< myList.size(); i++) { // Print all elements of List System.out.println(myList.get(i)); } } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(1), konstante telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
1. B metode: uzlabota cilpai
Katram elementam var piekļūt, izmantojot iterāciju, izmantojot uzlaboto cilpu. Šī cilpa tika ieviesta J2SE 5.0. Tā ir alternatīva pieeja, lai šķērsotu cilpu. Tas padara kodu lasāmāku.
Sintakse:
for(data_type variable : List_name) { // Body of the loop. // Each element can be accessed using variable. }>Zemāk ir šīs metodes piemērs:
Java // Java Program to Iterate over a List // using enhanced for loop (for-each) // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an Arraylist ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Uzlabotā for loop(for-each) izmantošana iterācijai (String i : myList) { // Drukāt visus ArrayList System.out.println(i) elementus; } } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(1), konstante telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
1-C metode: kamēr cilpas izmantošana
Atkārtojumu sarakstā var panākt arī, izmantojot kamēr cilpu. Koda bloks cilpas iekšpusē tiek izpildīts, līdz nosacījums ir patiess. Cilpas mainīgo var izmantot kā an indeksu, lai piekļūtu katram elementam.
Sintakse:
while(variable>
Zemāk ir šīs metodes piemērs:
Java // Java Program to iterate over a List // using while loop // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Jebkura mainīgā inicializēšana uz 0 int i = 0; // Ja mainīgā vērtība ir mazāka par // vērtību, kas norāda saraksta lielumu, kamēr (t< myList.size()) { // Print element of list System.out.println(myList.get(i)); // Increase variable count by 1 i++; } } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa : O(1), Konstanta telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
2. metode: iteratora izmantošana
Iterators ir Java objekts, kas ļauj atkārtot kolekcijas elementus. Katram saraksta elementam var piekļūt, izmantojot iteratoru ar kamēr cilpu.
Sintakse:
Iterator variable = list_name.iterator();>
Zemāk ir šīs metodes piemērs:
Java // Java Program to iterate over the list // using iterator // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Iterators Iteratorsit = myList.iterator(); // Nosacījuma pārbaude elementiem sarakstā // izmantojot metodi hasNext(), kas atgriež patiesu līdz // sarakstā ir viens elements, kamēr (it.hasNext()) { // Drukāt visus saraksta elementus System.out.println(it .Nākamais()); } } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(1), konstante telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
3. metode: saraksta iteratora izmantošana
ListIterator ir Java iterators, kas ir pieejams kopš versijas 1.2. Tas ļauj mums vienu pēc otra atkārtot elementus no List īstenotā objekta. To izmanto, lai iterētu sarakstu, izmantojot while cilpu.
Sintakse:
ListIterator variable = list_name.listIterator();>
Zemāk ir šīs metodes piemērs:
Java // Java program to iterate over a list // using ListIterator import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Saraksta iterators ListIteratorit = myList.listIterator(); // Nosacījuma pārbaudiet, vai sarakstā ir elements, // izmantojot hasNext(), kas ir spēkā līdz // sarakstā ir viens elements, kamēr (it.hasNext()) { // Drukāt visus saraksta elementus System.out.println( it.next()); } } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(1), konstante telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
4. metode: Iterable.forEach()
Šī funkcija ir pieejama kopš Java 8. To var arī izmantot, lai atkārtotu sarakstu. Iterāciju var veikt, izmantojot a lambda izteiksme.
Sintakse:
python samazināt
list_name.forEach(variable->{//koda bloks})>Zemāk ir šīs metodes piemērs:
Java // Java Program to iterate over a List // using forEach() // Importing all classes of // java.util method import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // Lambda izteiksme visu elementu drukāšana sarakstā myList.forEach( (temp) -> { System.out.println(temp); }); } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(1), konstante telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
5. metode: Stream.forEach()
Stream().forEach() apstrādes secība nav definēta, savukārt forEach() gadījumā tā ir definēta. Abus var izmantot, lai atkārtotu sarakstu.
Sintakse:
list_name.stream.forEach(variable->{//koda bloks})>Zemāk ir šīs metodes piemērs:
Java // Java Program iterating over a List // using stream.forEach() method // Importing all classes of // java.util method import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = jauns ArrayList(); // Elementu pievienošana sarakstam // Pielāgotas ievades myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // metode stream.forEach() izdrukā // visus elementus sarakstā myList.stream().forEach( (temp) -> System.out.println(temp)); } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(1), konstante telpa tiek izmantota cilpas mainīgajiem (šajā gadījumā i).
6. metode: sadalītāja izmantošana (Java 8 un jaunākas versijas)
Java 8 ieviesa Sadalītājs interfeiss, kas apzīmē split iterator. Tas nodrošina veidu, kā atkārtot elementus paralēli draudzīgākā veidā. Sadalītāju var iegūt no dažādiem avotiem, tostarp tādām kolekcijām kā saraksti. Lai secīgi šķērsotu visus atlikušos elementus, tiek izmantota Spliterator metode forEachRemaining.
Sintakse:
Spliterator spliterator = myList.spliterator();>
Zemāk ir šīs metodes piemērs:
Java // Java Program iterating over a List // using Spliterator import java.util.List; import java.util.Spliterator; public class ListIteration { public static void main(String[] args) { // List of String ListmyList = List.of('A', 'B', 'C','D'); // Izmantojot Spliterator Spliteratorsadalītājs = myList.spliterator(); sadalītājs.forEachRemaining(System.out::println); } }> Izvade
A B C D>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n), kur “n” ir saraksta lielums.
Palīgtelpa: O(log n) vai O(1), (atkarībā no sadalītāja ieviešanas īpašībām)