logo

כיצד לשחזר רשימה בג'אווה

ב-Java, רשימה זה הוא ממשק של מסגרת אוסף . הוא מספק לנו לשמור על אוסף החפצים המסודר. מחלקות היישום של ממשק רשימה הן ArrayList, LinkedList, Stack , ו וֶקטוֹר . ArrayList ו-LinkedList נמצאים בשימוש נרחב ב Java . בחלק זה נלמד כיצד לחזור על רשימה ב-Java . לאורך חלק זה, נשתמש רשימת מערך .

Java for Loop

  1. בסיסי עבור לולאה
  2. משופר עבור Loop

Java Iterators

  1. איטרטור
  2. ListIterator

שיטה Java forEach

  1. Iterable.forEach()
  2. Stream.forEach()

Java for Loop

בסיסי עבור לולאה

Java עבור לולאה היא לולאת בקרת הזרימה הנפוצה ביותר עבור איטרציה. לולאת for מכילה משתנה שפועל כמספר אינדקס. זה מופעל עד שכל הרשימה לא חוזרת.

תחביר:

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

IterateListExample1.java

 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();>

משופר עבור Loop

זה דומה ל-basic for loop. זה קומפקטי, קל וקריא. הוא נמצא בשימוש נרחב לביצוע מעבר על הרשימה. זה קל בהשוואה ל-basic for loop.

תחביר:

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

IterateListExample2.java

 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 

ג'אווה איטרטור

איטרטור

Java מספקת ממשק Iterator ל לְחַזֵר מעל האוספים, כגון רשימה, מפה וכו'. הוא מכיל שתי שיטות מפתח next() ו-hasNaxt() המאפשרות לנו לבצע איטרציה על הרשימה.

הַבָּא(): השיטה next() מבצעת את האיטרציה בסדר קדימה. זה מחזיר את הרכיב הבא ברשימה. זה זורק NoSuchElementException אם האיטרציה אינה מכילה את הרכיב הבא ברשימה. ניתן לקרוא לשיטה זו שוב ושוב כדי לחזור על הרשימה, או להתערבב עם קריאות ל- previous() כדי לעבור הלוך ושוב.

תחביר:

תכנות r ב-c
 E next() 

hasNext(): השיטה hasNext() עוזרת לנו למצוא את האלמנט האחרון של הרשימה. הוא בודק אם לרשימה יש את האלמנט הבא או לא. אם המתודה hasNext() מקבלת את האלמנט במהלך המעבר בכיוון קדימה, מחזירה true, אחרת מחזירה false ומפסיקה את הביצוע.

תחביר:

 boolean hasNext() 

IterateListExample3.java

 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 

ListIterator

ה-ListIterator הוא גם ממשק ששייך לחבילת java.util. זה מתרחב איטרטור מִמְשָׁק. זה מאפשר לנו לחזור על הרשימה בסדר קדימה או אחורה. האיטרציה קדימה על הרשימה מספקת את אותו מנגנון, כפי שמשמש את האיטרטור. אנו משתמשים בשיטה next() ו- hasNext() של ממשק Iterator כדי לחזור על הרשימה.

IterateListExample4.java

מערך חיתוך java
 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 

שיטה Java forEach

Iterable.forEach()

ממשק Iterable מספק את שיטת forEach() לחזרה על הרשימה. הוא זמין מאז Java 8. הוא מבצע את הפעולה שצוינה עבור כל אלמנט עד שכל האלמנטים עברו עיבוד או שהפעולה זורקת חריגה. זה גם מקבל ביטויי Lambda כפרמטר.

תחביר:

 default void forEach(Consumer action) 

יישום ברירת המחדל מתנהג כך:

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

זה מקבל פעולה כפרמטר כלומר לא מפריע (פירוש הדבר שמקור הנתונים אינו משתנה כלל במהלך ביצוע צינור הזרם) פעולה לביצוע על האלמנטים. זה זורק NullPointerException אם הפעולה שצוינה היא null.

ה צרכן הוא ממשק פונקציונלי שיכול לשמש כיעד ההקצאה עבור ביטוי למבדה או התייחסות לשיטה. T הוא סוג הקלט לפעולה. הוא מייצג פעולה שמקבלת ארגומנט קלט בודד ולא מחזירה תוצאה.

IterateListExample5.java

 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 

Stream.forEach()

ממשק Java Stream מאפשר לנו להמיר את ערכי הרשימה לזרם. בעזרת ממשק Stream נוכל לגשת לפעולות כמו forEach(), map() ו-filter().

תחביר:

 void forEach(Consumer action) 

זה מקבל פעולה כפרמטר כלומר לא מפריע (פירוש הדבר שמקור הנתונים אינו משתנה כלל במהלך ביצוע צינור הזרם) פעולה לביצוע על האלמנטים.

ה צרכן הוא ממשק פונקציונלי שיכול לשמש כיעד ההקצאה עבור ביטוי למבדה או התייחסות לשיטה. T הוא סוג הקלט לפעולה. הוא מייצג פעולה שמקבלת ארגומנט קלט בודד ולא מחזירה תוצאה.

IterateListExample5.java

 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