logo

Како итерирати листу у Јави

у Јави, Листа је интерфејс за Оквир за прикупљање . Омогућава нам да одржавамо уређену колекцију објеката. Имплементационе класе интерфејса листе су АрраиЛист, ЛинкедЛист, Стацк , и Вецтор . АрраиЛист и ЛинкедЛист се широко користе у Јава . У овом одељку ћемо научити како поновити листу у Јави . У овом одељку користићемо Низ листа .

Јава за петљу

  1. Основно за петљу
  2. Побољшано за петљу

Јава итератори

  1. Итератор
  2. ЛистИтератор

Јава за сваки метод

животни циклус развоја софтвера
  1. Итерабле.форЕацх()
  2. Стреам.форЕацх()

Јава за петљу

Основно за петљу

Јава фор петља је најчешћа петља контроле тока за итерацију. Петља фор садржи променљиву која делује као број индекса. Извршава се све док се цела Листа не понови.

Синтакса:

 for(initialization; condition; increment or decrement) { //body of the loop } 

ИтератеЛистЕкампле1.јава

 import java.util.*; public class IterateListExample1 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate list using for loop for (int i = 0; i <city.size(); i++) { prints the elements of list system.out.println(city.get(i)); } < pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h3>Enhanced for Loop</h3> <p>It is similar to the basic for loop. It is compact, easy, and readable. It is widely used to perform traversal over the List. It is easy in comparison to basic for loop.</p> <p> <strong>Syntax:</strong> </p> <pre> for(data_type variable : array | collection) { //body of the loop } </pre> <p> <strong>IterateListExample2.java</strong> </p> <pre> import java.util.*; public class IterateListExample2 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iteration over List using enhanced for loop for (String cities : city) { //prints the elements of the List System.out.println(cities); } } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h2>Java Iterator</h2> <h3>Iterator</h3> <p> <a href="/iterator-java">Java provides an interface Iterator</a> to <strong>iterate</strong> over the Collections, such as List, Map, etc. It contains two key methods next() and hasNaxt() that allows us to perform an iteration over the List.</p> <p> <strong>next():</strong> The next() method perform the iteration in forward order. It returns the next element in the List. It throws <strong>NoSuchElementException</strong> if the iteration does not contain the next element in the List. This method may be called repeatedly to iterate through the list, or intermixed with calls to previous() to go back and forth.</p> <p> <strong>Syntax:</strong> </p> <pre> E next() </pre> <p> <strong>hasNext():</strong> The hasNext() method helps us to find the last element of the List. It checks if the List has the next element or not. If the hasNext() method gets the element during traversing in the forward direction, returns true, else returns false and terminate the execution.</p> <p> <strong>Syntax:</strong> </p> <pre> boolean hasNext() </pre> <p> <strong>IterateListExample3.java</strong> </p> <pre> import java.util.*; public class IterateListExample3 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using enhances for loop Iterator cityIterator = city.iterator(); //iterator over List using while loop while(cityIterator.hasNext()) { System.out.println(cityIterator.next()); } } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h3>ListIterator</h3> <p>The ListIterator is also an interface that belongs to java.util package. It extends <strong>Iterator</strong> interface. It allows us to iterate over the List either in forward or backward order. The forward iteration over the List provides the same mechanism, as used by the Iterator. We use the next() and hasNext() method of the Iterator interface to iterate over the List.</p> <p> <strong>IterateListExample4.java</strong> </p> <pre> import java.util.*; public class IterateListExample4 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using the ListIterator ListIterator listIterator = city.listIterator(); while(listIterator.hasNext()) { //prints the elements of the List System.out.println(listIterator.next()); } } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h2>Java forEach Method</h2> <h3>Iterable.forEach()</h3> <p>The Iterable interface provides forEach() method to iterate over the List. It is available since Java 8. It performs the specified action for each element until all elements have been processed or the action throws an exception. It also accepts Lambda expressions as a parameter.</p> <p> <strong>Syntax:</strong> </p> <pre> default void forEach(Consumer action) </pre> <p>The default implementation behaves like:</p> <pre> for (T t : this) action.accept(t); </pre> <p>It accepts <strong>action</strong> as a parameter that is <strong>non-interfering</strong> (means that the data source is not modified at all during the execution of the stream pipeline) action to perform on the elements. It throws <strong>NullPointerException</strong> if the specified action is null.</p> <p>The <strong>Consumer</strong> is a functional interface that can be used as the assignment target for a lambda expression or method reference. T is the type of input to the operation. It represents an operation that accepts a single input argument and returns no result.</p> <p> <strong>IterateListExample5.java</strong> </p> <pre> import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach city.forEach(System.out::println); } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <h3>Stream.forEach()</h3> <p>Java Stream interface allows us to convert the List values into a stream. With the help of Stream interface we can access operations like forEach(), map(), and filter().</p> <p> <strong>Syntax:</strong> </p> <pre> void forEach(Consumer action) </pre> <p>It accepts <strong>action</strong> as a parameter that is <strong>non-interfering</strong> (means that the data source is not modified at all during the execution of the stream pipeline) action to perform on the elements.</p> <p>The <strong>Consumer</strong> is a functional interface that can be used as the assignment target for a lambda expression or method reference. T is the type of input to the operation. It represents an operation that accepts a single input argument and returns no result.</p> <p> <strong>IterateListExample5.java</strong> </p> <pre> import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach loop city.stream().forEach((c) -&gt; System.out.println(c)); } } </pre> <p> <strong>Output</strong> </p> <pre> Boston San Diego Las Vegas Houston Miami Austin </pre> <hr></city.size();>

Побољшано за петљу

Слично је основној фор петљи. Компактан је, лак и читљив. Широко се користи за обављање преласка преко Листе. Лако је у поређењу са основном фор петљом.

Синтакса:

 for(data_type variable : array | collection) { //body of the loop } 

ИтератеЛистЕкампле2.јава

 import java.util.*; public class IterateListExample2 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iteration over List using enhanced for loop for (String cities : city) { //prints the elements of the List System.out.println(cities); } } } 

Излаз

 Boston San Diego Las Vegas Houston Miami Austin 

Јава Итератор

Итератор

Јава пружа интерфејс Итератор до изводити преко колекција, као што су листа, мапа, итд. Садржи две кључне методе нект() и хасНакт() које нам омогућавају да извршимо итерацију над Листом.

следећи(): Метод нект() изводи итерацију унапред. Враћа следећи елемент на листи. То баца НоСуцхЕлементЕкцептион ако итерација не садржи следећи елемент у Листи. Овај метод се може позивати више пута да би се итерирао кроз листу, или помешати са позивима превиоус() да би се кретао напред-назад.

Синтакса:

прикази и табеле
 E next() 

хасНект(): Метод хасНект() нам помаже да пронађемо последњи елемент листе. Проверава да ли Листа има следећи елемент или не. Ако метода хасНект() добије елемент током преласка у правцу унапред, враћа тачно, иначе враћа нетачно и прекида извршење.

Синтакса:

 boolean hasNext() 

ИтератеЛистЕкампле3.јава

 import java.util.*; public class IterateListExample3 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using enhances for loop Iterator cityIterator = city.iterator(); //iterator over List using while loop while(cityIterator.hasNext()) { System.out.println(cityIterator.next()); } } } 

Излаз

 Boston San Diego Las Vegas Houston Miami Austin 

ЛистИтератор

ЛистИтератор је такође интерфејс који припада пакету јава.утил. Проширује се Итератор интерфејс. Омогућава нам да прелазимо преко листе било напред или назад. Итерација унапред преко листе обезбеђује исти механизам који користи Итератор. Користимо следеће() и хасНект() методе интерфејса Итератор за итерацију преко Листе.

ИтератеЛистЕкампле4.јава

 import java.util.*; public class IterateListExample4 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using the ListIterator ListIterator listIterator = city.listIterator(); while(listIterator.hasNext()) { //prints the elements of the List System.out.println(listIterator.next()); } } } 

Излаз

 Boston San Diego Las Vegas Houston Miami Austin 

Јава за сваки метод

Итерабле.форЕацх()

Интерфејс Итерабле обезбеђује метод форЕацх() за итерацију преко листе. Доступан је од Јаве 8. Изводи наведену акцију за сваки елемент све док се сви елементи не обрађују или док акција не изазове изузетак. Такође прихвата Ламбда изразе као параметар.

Синтакса:

 default void forEach(Consumer action) 

Подразумевана имплементација се понаша овако:

 for (T t : this) action.accept(t); 

То прихвата поступак као параметар који је немешање (значи да се извор података уопште не мења током извршавања стреам пипелине-а) радњу коју треба извршити на елементима. То баца НуллПоинтерЕкцептион ако је наведена радња нула.

Тхе Цонсумер је функционални интерфејс који се може користити као циљ доделе за ламбда израз или референцу методе. Т је тип улаза за операцију. Представља операцију која прихвата један улазни аргумент и не враћа резултат.

ИтератеЛистЕкампле5.јава

 import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach city.forEach(System.out::println); } } 

Излаз

 Boston San Diego Las Vegas Houston Miami Austin 

Стреам.форЕацх()

Јава Стреам интерфејс нам омогућава да конвертујемо вредности листе у ток. Уз помоћ Стреам интерфејса можемо приступити операцијама као што су форЕацх(), мап() и филтер().

гридлаиоут

Синтакса:

 void forEach(Consumer action) 

То прихвата поступак као параметар који је немешање (значи да се извор података уопште не мења током извршавања стреам пипелине-а) радњу коју треба извршити на елементима.

Тхе Цонсумер је функционални интерфејс који се може користити као циљ доделе за ламбда израз или референцу методе. Т је тип улаза за операцију. Представља операцију која прихвата један улазни аргумент и не враћа резултат.

ИтератеЛистЕкампле5.јава

 import java.util.*; public class IterateListExample5 { public static void main(String args[]) { //defining a List List city = Arrays.asList(&apos;Boston&apos;, &apos;San Diego&apos;, &apos;Las Vegas&apos;, &apos;Houston&apos;, &apos;Miami&apos;, &apos;Austin&apos;); //iterate List using forEach loop city.stream().forEach((c) -&gt; System.out.println(c)); } } 

Излаз

 Boston San Diego Las Vegas Houston Miami Austin