Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

4.5 Το αντικείμενο Iterator στην Java

Ένα αντικείμενο Iterator χρησιμοποιείται για την επανάληψη ή διάσχιση συλλογών, όπως οι ArrayList και HashSet, με σκοπό την ανάκτηση των στοιχείων τους. Ο όρος “iterator” χρησιμοποιείται επειδή αναφέρεται στην επανάληψη ή διάσχιση των στοιχείων της συλλογής.

Για να χρησιμοποιήσετε ένα Iterator, πρέπει να το εισαγάγετε από το πακέτο java.util.

Μπορείτε να χρησιμοποιήσετε τη μέθοδο iterator() για να αποκτήσετε ένα Iterator για οποιαδήποτε συλλογή (collection).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorExample {
public static void main(String[] args) {
// Δημιουργία μιας νέας λίστας ArrayList με στοιχεία τύπου String
ArrayList<String> cars = new ArrayList<String>();
// Προσθήκη αυτοκινήτων στη λίστα
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Δημιουργία ενός Iterator για περιήγηση στα στοιχεία της λίστας
Iterator<String> it = cars.iterator();
// Επανάληψη μέχρι να μην υπάρχουν άλλα στοιχεία
while (it.hasNext()) {
// Εκτύπωση του επόμενου στοιχείου της λίστας
System.out.println(it.next());
}
}
}
import java.util.ArrayList; import java.util.Iterator; public class IteratorExample { public static void main(String[] args) { // Δημιουργία μιας νέας λίστας ArrayList με στοιχεία τύπου String ArrayList<String> cars = new ArrayList<String>(); // Προσθήκη αυτοκινήτων στη λίστα cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); // Δημιουργία ενός Iterator για περιήγηση στα στοιχεία της λίστας Iterator<String> it = cars.iterator(); // Επανάληψη μέχρι να μην υπάρχουν άλλα στοιχεία while (it.hasNext()) { // Εκτύπωση του επόμενου στοιχείου της λίστας System.out.println(it.next()); } } }
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    public static void main(String[] args) {
        // Δημιουργία μιας νέας λίστας ArrayList με στοιχεία τύπου String
        ArrayList<String> cars = new ArrayList<String>();

        // Προσθήκη αυτοκινήτων στη λίστα
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        // Δημιουργία ενός Iterator για περιήγηση στα στοιχεία της λίστας
        Iterator<String> it = cars.iterator();

        // Επανάληψη μέχρι να μην υπάρχουν άλλα στοιχεία
        while (it.hasNext()) {
            // Εκτύπωση του επόμενου στοιχείου της λίστας
            System.out.println(it.next());
        }
    }
}

Ο παραπάνω κώδικας πραγματοποιεί τα εξής:

  1. Δημιουργεί μια νέα λίστα με όνομα “cars” που περιέχει στοιχεία τύπου String.
  2. Προσθέτει αυτοκίνητα στη λίστα “cars” με τη χρήση της μεθόδου add().
  3. Δημιουργεί έναν Iterator με όνομα “it” για να περιηγηθεί στα στοιχεία της λίστας “cars”.
  4. Ξεκινά μια επανάληψη while για να ελέγξει αν υπάρχουν άλλα στοιχεία στη λίστα.
  5. Εκτυπώνει το επόμενο στοιχείο της λίστας χρησιμοποιώντας τη μέθοδο next() του Iterator.
  6. Η επανάληψη συνεχίζει μέχρι να διατρέξει όλα τα στοιχεία της λίστας “cars” και να μην υπάρχουν πλέον επόμενα στοιχεία.

Συνολικά, ο κώδικας εκτυπώνει τα αυτοκίνητα που περιέχονται στη λίστα “cars” στη σειρά που έχουν προστεθεί.

Για να διαπεράσετε μια συλλογή, χρησιμοποιήστε τις μεθόδους hasNext() και next() του Iterator:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorExample {
public static void main(String[] args) {
// Δημιουργία μιας ArrayList με στοιχεία τύπου String
ArrayList<String> cars = new ArrayList<String>();
// Προσθήκη στοιχείων στην ArrayList
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Δημιουργία Iterator για περιήγηση στα στοιχεία της ArrayList
Iterator<String> it = cars.iterator();
// Επανάληψη μέχρι να μην υπάρχουν άλλα στοιχεία
while (it.hasNext()) {
// Εκτύπωση του επόμενου στοιχείου
System.out.println(it.next());
}
}
}
import java.util.ArrayList; import java.util.Iterator; public class IteratorExample { public static void main(String[] args) { // Δημιουργία μιας ArrayList με στοιχεία τύπου String ArrayList<String> cars = new ArrayList<String>(); // Προσθήκη στοιχείων στην ArrayList cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); // Δημιουργία Iterator για περιήγηση στα στοιχεία της ArrayList Iterator<String> it = cars.iterator(); // Επανάληψη μέχρι να μην υπάρχουν άλλα στοιχεία while (it.hasNext()) { // Εκτύπωση του επόμενου στοιχείου System.out.println(it.next()); } } }
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    public static void main(String[] args) {
        // Δημιουργία μιας ArrayList με στοιχεία τύπου String
        ArrayList<String> cars = new ArrayList<String>();
        
        // Προσθήκη στοιχείων στην ArrayList
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        // Δημιουργία Iterator για περιήγηση στα στοιχεία της ArrayList
        Iterator<String> it = cars.iterator();
        
        // Επανάληψη μέχρι να μην υπάρχουν άλλα στοιχεία
        while (it.hasNext()) {
            // Εκτύπωση του επόμενου στοιχείου
            System.out.println(it.next());
        }
    }
}

Ο κώδικας αυτός δημιουργεί μια ArrayList με ονόματα αυτοκινήτων και χρησιμοποιεί έναν Iterator για να περιηγηθεί στα στοιχεία της λίστας και να τα εκτυπώσει στην οθόνη.

Συγκεκριμένα, ο κώδικας περιέχει τα εξής βήματα:

  1. Δημιουργία μιας ArrayList με ονόματα αυτοκινήτων: ArrayList<String> cars = new ArrayList<String>();
  2. Προσθήκη στοιχείων στην ArrayList: cars.add("Volvo");, cars.add("BMW");, cars.add("Ford");, cars.add("Mazda");
  3. Δημιουργία ενός Iterator για περιήγηση στα στοιχεία της ArrayList: Iterator<String> it = cars.iterator();
  4. Επανάληψη μέσω του Iterator μέχρι να μην υπάρχουν άλλα στοιχεία: while (it.hasNext()) { ... }
  5. Εκτύπωση του επόμενου στοιχείου με τη χρήση της System.out.println(): System.out.println(it.next());

Έτσι, ο κώδικας εκτυπώνει στην οθόνη τα ονόματα των αυτοκινήτων που περιέχονται στην ArrayList, ένα-ένα, σε διαδοχικές γραμμές.

Οι Iterators σχεδιάστηκαν για να επιτρέπουν την εύκολη αλλαγή των συλλογών στις οποίες διαπερνούν. Η μέθοδος remove() μπορεί να αφαιρέσει στοιχεία από μια συλλογή κατά τη διάρκεια της διαπέρασης:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorExample {
public static void main(String[] args) {
// Δημιουργία μιας ArrayList για αποθήκευση αυτοκινήτων
ArrayList<String> cars = new ArrayList<String>();
// Προσθήκη αυτοκινήτων στη λίστα
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Δημιουργία Iterator για περιήγηση στα αυτοκίνητα
Iterator<String> it = cars.iterator();
// Επανάληψη μέχρι να μην υπάρχουν άλλα αυτοκίνητα
while (it.hasNext()) {
// Ανάκτηση του επόμενου αυτοκινήτου από το Iterator
String car = it.next();
// Έλεγχος εάν το αυτοκίνητο είναι "Ford"
if (car.equals("Ford")) {
// Αφαίρεση του αυτοκινήτου από τη λίστα με τη χρήση του Iterator
it.remove();
}
}
// Εκτύπωση της ενημερωμένης λίστας αυτοκινήτων
System.out.println(cars);
}
}
import java.util.ArrayList; import java.util.Iterator; public class IteratorExample { public static void main(String[] args) { // Δημιουργία μιας ArrayList για αποθήκευση αυτοκινήτων ArrayList<String> cars = new ArrayList<String>(); // Προσθήκη αυτοκινήτων στη λίστα cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); // Δημιουργία Iterator για περιήγηση στα αυτοκίνητα Iterator<String> it = cars.iterator(); // Επανάληψη μέχρι να μην υπάρχουν άλλα αυτοκίνητα while (it.hasNext()) { // Ανάκτηση του επόμενου αυτοκινήτου από το Iterator String car = it.next(); // Έλεγχος εάν το αυτοκίνητο είναι "Ford" if (car.equals("Ford")) { // Αφαίρεση του αυτοκινήτου από τη λίστα με τη χρήση του Iterator it.remove(); } } // Εκτύπωση της ενημερωμένης λίστας αυτοκινήτων System.out.println(cars); } }
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    public static void main(String[] args) {
        // Δημιουργία μιας ArrayList για αποθήκευση αυτοκινήτων
        ArrayList<String> cars = new ArrayList<String>();

        // Προσθήκη αυτοκινήτων στη λίστα
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");

        // Δημιουργία Iterator για περιήγηση στα αυτοκίνητα
        Iterator<String> it = cars.iterator();

        // Επανάληψη μέχρι να μην υπάρχουν άλλα αυτοκίνητα
        while (it.hasNext()) {
            // Ανάκτηση του επόμενου αυτοκινήτου από το Iterator
            String car = it.next();

            // Έλεγχος εάν το αυτοκίνητο είναι "Ford"
            if (car.equals("Ford")) {
                // Αφαίρεση του αυτοκινήτου από τη λίστα με τη χρήση του Iterator
                it.remove();
            }
        }

        // Εκτύπωση της ενημερωμένης λίστας αυτοκινήτων
        System.out.println(cars);
    }
}

Ο παραπάνω κώδικας παρουσιάζει τη χρήση του Iterator για την περιήγηση και τροποποίηση μιας ArrayList. Οι βασικές λειτουργίες του κώδικα είναι οι εξής:

  1. Δημιουργία μιας ArrayList με ονομασία “cars” και προσθήκη αυτοκινήτων σε αυτήν.
  2. Δημιουργία ενός Iterator με τη χρήση της μεθόδου iterator() της ArrayList για να περιηγηθούμε στα στοιχεία της.
  3. Χρησιμοποίηση της while επανάληψης για να ελέγξουμε αν υπάρχουν άλλα αυτοκίνητα στη λίστα.
  4. Μέσα στη while επανάληψη, αποθηκεύουμε το επόμενο αυτοκίνητο από το Iterator σε μια μεταβλητή με ονομασία “car”.
  5. Ελέγχουμε εάν το αυτοκίνητο είναι ίσο με τη συγκεκριμένη τιμή “Ford”.
  6. Αν το αυτοκίνητο είναι “Ford”, χρησιμοποιούμε τον Iterator για να το αφαιρέσουμε από τη λίστα.
  7. Η διαδικασία επαναλαμβάνεται μέχρι να εξεταστούν όλα τα αυτοκίνητα.
  8. Τέλος, εκτυπώνουμε την ενημερωμένη λίστα αυτοκινήτων με τη χρήση της μεθόδου println().
16 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων