Η κλάση ArrayList στην Java είναι μια κλάση που χρησιμοποιείται για τη δημιουργία και τη διαχείριση δυναμικών λιστών. Ανήκει στο πακέτο java.util και υλοποιεί τη διεπαφή List. Η ArrayList επιτρέπει την αποθήκευση και την προσπέλαση στοιχείων με βάση τη θέση τους στη λίστα.

Κάθε φορά που προστίθεται ένα στοιχείο στην ArrayList, αυτή αυξάνει δυναμικά το μέγεθός της για να χωρέσει το νέο στοιχείο. Επίσης, παρέχει μεθόδους για την προσπέλαση, την τροποποίηση και την αφαίρεση στοιχείων από τη λίστα.

Η χρήση της ArrayList είναι πολύ κοινή στην ανάπτυξη εφαρμογών Java, καθώς παρέχει ευκολία στον χειρισμό συλλογών δεδομένων και ευελιξία στην προσαρμογή του μεγέθους της λίστας κατά την εκτέλεση του προγράμματος.

Η βασική διαφορά μεταξύ ενός ενσωματωμένου πίνακα (array) και μιας ArrayList στην Java είναι ότι ο ενσωματωμένος πίνακας έχει ένα σταθερό μέγεθος που ορίζεται κατά τη δημιουργία του, ενώ η ArrayList μπορεί να αυξάνει ή να μειώνει το μέγεθός της δυναμικά.

Όταν χρησιμοποιείτε έναν ενσωματωμένο πίνακα, πρέπει να ορίσετε το μέγεθός του εκ των προτέρων και δεν μπορεί να αλλάξει αργότερα. Αν θέλετε να προσθέσετε ή να αφαιρέσετε στοιχεία από τον πίνακα, πρέπει να δημιουργήσετε έναν νέο πίνακα με το επιθυμητό μέγεθος και να αντιγράψετε τα περιεχόμενα του παλιού πίνακα.

Αντίθετα, με την ArrayList μπορείτε να προσθέσετε ή να αφαιρέσετε στοιχεία από τη λίστα όποτε θέλετε, χωρίς να χρειάζεται να δημιουργήσετε έναν νέο πίνακα. Η ArrayList αυξάνει ή μειώνει το μέγεθός της αυτόματα, ανάλογα με τον αριθμό των στοιχείων που προστίθενται ή αφαιρούνται από αυτήν. Αυτό καθιστά την ArrayList πιο ευέλικτη για δυναμικές ανάγκες αποθήκευσης και επεξεργασίας στοιχείων.

Η κλάση ArrayList στην Java είναι εξαιρετικά χρήσιμη, καθώς παρέχει πολλές χρήσιμες μεθόδους για την προσθήκη, ανάγνωση και αφαίρεση στοιχείων από μια λίστα.

Στην Java, η σύνταξη για τη δημιουργία μιας ArrayList είναι λίγο διαφορετική από τη δημιουργία ενός πίνακα.

Στο παρακάτω παράδειγμα δημιουργούμε ένα αντικείμενο ArrayList με όνομα GPU που θα αποθηκεύει αλφαριθμητικά (strings):

import java.util.ArrayList;

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

Ο κώδικας δημιουργεί μια νέα μεταβλητή με το όνομα GPU, η οποία είναι μια λίστα (ArrayList) που μπορεί να αποθηκεύσει στοιχεία τύπου String. Η λίστα αυτή δημιουργείται με τη χρήση της κλάσης ArrayList από τη βιβλιοθήκη java.util.

Η δημιουργία της λίστας είναι ο πρώτος βήμα για την αποθήκευση στοιχείων τύπου String σε αυτήν. Μετά τη δημιουργία της λίστας, μπορείτε να προσθέσετε, να αφαιρέσετε και να τροποποιήσετε τα στοιχεία που περιέχει, χρησιμοποιώντας τις κατάλληλες μεθόδους της κλάσης ArrayList.

Στον παρόντα κώδικα, η λίστα GPU απλώς δημιουργείται, χωρίς να γίνεται προσθήκη ή τροποποίηση στοιχείων. Αυτός είναι ένας αρχικός κώδικας για την αρχικοποίηση μιας λίστας και μπορεί να επεκταθεί ανάλογα με τις ανάγκες του προγράμματος.

Η κλάση ArrayList παρέχει πολλές χρήσιμες μεθόδους για τη διαχείριση των στοιχείων της λίστας. Για παράδειγμα, για να προσθέσετε στοιχεία στη λίστα ArrayList, χρησιμοποιήστε τη μέθοδο add():

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας νέας λίστας με στοιχεία τύπου String για αποθήκευση κατασκευαστών καρτών γραφικών (GPU)
    GPU.add("Nvidia"); // Προσθήκη του στοιχείου "Nvidia" στη λίστα
    GPU.add("AMD"); // Προσθήκη του στοιχείου "AMD" στη λίστα
    GPU.add("Intel"); // Προσθήκη του στοιχείου "Intel" στη λίστα
    System.out.println(GPU); // Εκτύπωση της λίστας GPU
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με την ονομασία “GPU” και προσθέτει τρία στοιχεία σε αυτήν: “Nvidia”, “AMD” και “Intel”. Στη συνέχεια, εκτυπώνει τη λίστα “GPU” στην οθόνη. Αποτέλεσμα της εκτέλεσης του κώδικα θα είναι η εμφάνιση της λίστας με τα τρία προστιθέμενα στοιχεία στην κονσόλα. Συγκεκριμένα, η έξοδος θα είναι:

[Nvidia, AMD, Intel]

Παρατηρήστε ότι δεν χρειάστηκε να καθορίσουμε το μέγεθος της λίστας από πριν, καθώς η κλάση ArrayList αυξάνει το μέγεθός της όταν προστίθενται νέα στοιχεία.

[adinserter block=”2″]

Για να αποκτήσετε πρόσβαση σε ένα στοιχείο στη λίστα ArrayList, χρησιμοποιήστε τη μέθοδο get() και αναφερθείτε στον αριθμό του δείκτη:

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας νέας λίστας με στοιχεία τύπου String για τις κάρτες γραφικών
    GPU.add("Nvidia"); // Προσθήκη του στοιχείου "Nvidia" στη λίστα
    GPU.add("AMD"); // Προσθήκη του στοιχείου "AMD" στη λίστα
    GPU.add("Intel"); // Προσθήκη του στοιχείου "Intel" στη λίστα
    String thirdElement = GPU.get(2); // Ανάκτηση του τρίτου στοιχείου της λίστας
    System.out.println(thirdElement); // Εκτύπωση του τρίτου στοιχείου
  }
}

Ο κώδικας δημιουργεί μια λίστα με την ονομασία “GPU” τύπου ArrayList<String>. Στη συνέχεια, προσθέτει τρία στοιχεία στη λίστα: “Nvidia”, “AMD” και “Intel”. Έπειτα, ανακτά το τρίτο στοιχείο της λίστας με τη χρήση της μεθόδου get(2), και το αποθηκεύει στη μεταβλητή thirdElement. Τέλος, εκτυπώνει την τιμή της μεταβλητής thirdElement στην οθόνη. Συνολικά, ο κώδικας εκτυπώνει τη λέξη “Intel” στην οθόνη, αφού είναι το τρίτο στοιχείο της λίστας.

Παρατηρήστε ότι οι δείκτες ξεκινούν από το μηδέν, οπότε το πρώτο στοιχείο έχει δείκτη 0, το δεύτερο έχει δείκτη 1, κ.λπ.

Για να τροποποιήσετε ένα στοιχείο στη λίστα ArrayList, χρησιμοποιήστε τη μέθοδο set() και αναφερθείτε στον αριθμό του δείκτη:

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας νέας λίστας με τις GPU
    GPU.add("Nvidia"); // Προσθήκη του στοιχείου "Nvidia" στη λίστα
    GPU.add("AMD"); // Προσθήκη του στοιχείου "AMD" στη λίστα
    GPU.add("Intel"); // Προσθήκη του στοιχείου "Intel" στη λίστα
    System.out.println("Original List: " + GPU); // Εκτύπωση της αρχικής λίστας
    GPU.set(1, "AMD Radeon"); // Τροποποίηση του στοιχείου στη θέση 1 με την τιμή "AMD Radeon"
    System.out.println("Modified List: " + GPU); // Εκτύπωση της τροποποιημένης λίστας
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με τις γνωστές εταιρείες κατασκευής GPU, όπως η Nvidia, η AMD και η Intel. Αρχικά, δημιουργείται μια νέα λίστα με τη βοήθεια της κλάσης ArrayList και προστίθενται τα στοιχεία “Nvidia”, “AMD” και “Intel” σε αυτήν τη σειρά. Έπειτα, εκτυπώνεται η αρχική λίστα με τη χρήση της μεθόδου System.out.println(). Στη συνέχεια, με τη χρήση της μεθόδου set() της κλάσης ArrayList, το στοιχείο που βρίσκεται στη θέση 1 της λίστας τροποποιείται και αντικαθίσταται με την τιμή “AMD Radeon”. Τέλος, εκτυπώνεται η τροποποιημένη λίστα. Έτσι, ο κώδικας επιτρέπει την προσθήκη, την τροποποίηση και την εκτύπωση μιας λίστας με τα ονόματα των εταιρειών GPU.

Η έξοδος θα είναι:

Original List: [Nvidia, AMD, Intel]
Modified List: [Nvidia, AMD Radeon, Intel]

Παρατηρήστε ότι στη μέθοδο set(), αναφερόμαστε στο δείκτη του στοιχείου που θέλουμε να αλλάξουμε και τη νέα τιμή του στοιχείου ως παράμετρο.

Για να αφαιρέσετε ένα στοιχείο από μια ArrayList, χρησιμοποιήστε τη μέθοδο remove() και αναφερθείτε στον αριθμό του δείκτη:

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας νέας λίστας μεταβλητής τύπου ArrayList που αποθηκεύει συμβολοσειρές γραφικών καρτών
    GPU.add("Nvidia"); // Προσθήκη της συμβολοσειράς "Nvidia" στη λίστα
    GPU.add("AMD Radeon"); // Προσθήκη της συμβολοσειράς "AMD Radeon" στη λίστα
    GPU.add("Intel"); // Προσθήκη της συμβολοσειράς "Intel" στη λίστα
    System.out.println("Original List: " + GPU); // Εκτύπωση της αρχικής λίστας GPU
    GPU.remove(1); // Αφαίρεση του στοιχείου με δείκτη 1 από τη λίστα
    System.out.println("Modified List: " + GPU); // Εκτύπωση της τροποποιημένης λίστας GPU
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με την ονομασία “GPU” και προσθέτει τρεις συμβολοσειρές (“Nvidia”, “AMD Radeon”, “Intel”) σε αυτήν τη λίστα. Στη συνέχεια, εκτυπώνει την αρχική λίστα (“Original List: [Nvidia, AMD Radeon, Intel]”). Έπειτα, αφαιρεί το δεύτερο στοιχείο από τη λίστα (στο παράδειγμα, τη συμβολοσειρά “AMD Radeon”) και εκτυπώνει την τροποποιημένη λίστα (“Modified List: [Nvidia, Intel]”). Ο κώδικας δίνει ένα παράδειγμα για το πώς να δημιουργήσετε μια λίστα, προσθέσετε και αφαιρέσετε στοιχεία από αυτήν, και εμφανίσετε την αρχική και την τροποποιημένη λίστα στην οθόνη.

Η έξοδος θα είναι:

Original List: [Nvidia, AMD Radeon, Intel]
Modified List: [Nvidia, Intel]

Παρατηρήστε ότι στη μέθοδο remove(), αναφερόμαστε στο δείκτη του στοιχείου που θέλουμε να αφαιρέσουμε ως παράμετρο.

[adinserter block=”3″]

Για να αφαιρέσετε όλα τα στοιχεία από μια ArrayList, χρησιμοποιήστε τη μέθοδο clear():

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας ArrayList με στοιχεία τύπου String για τις κάρτες γραφικών
    GPU.add("Nvidia"); // Προσθήκη του στοιχείου "Nvidia" στη λίστα
    GPU.add("AMD Radeon"); // Προσθήκη του στοιχείου "AMD Radeon" στη λίστα
    GPU.add("Intel"); // Προσθήκη του στοιχείου "Intel" στη λίστα
    System.out.println("Original List: " + GPU); // Εκτύπωση της αρχικής λίστας GPU
    GPU.clear(); // Εκκαθάριση της λίστας GPU
    System.out.println("Modified List: " + GPU); // Εκτύπωση της τροποποιημένης λίστας GPU
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με την ονομασία “GPU” που περιέχει στοιχεία τύπου String. Στη συνέχεια, προσθέτει τρία στοιχεία στη λίστα: “Nvidia”, “AMD Radeon” και “Intel”. Έπειτα, εκτυπώνει την αρχική λίστα “Original List: [Nvidia, AMD Radeon, Intel]”. Στη συνέχεια, χρησιμοποιεί τη μέθοδο clear() για να εκκαθαρίσει τη λίστα, δηλαδή να αφαιρέσει όλα τα στοιχεία της. Τέλος, εκτυπώνει την τροποποιημένη λίστα “Modified List: []”, η οποία είναι κενή μετά την εκκαθάριση.

Η έξοδος θα είναι:

Original List: [Nvidia, AMD Radeon, Intel]
Modified List: []

Παρατηρήστε ότι η μέθοδος clear() διαγράφει όλα τα στοιχεία από τη λίστα και καθιστά τη λίστα άδεια.

Για να βρείτε πόσα στοιχεία έχει μια ArrayList, χρησιμοποιήστε τη μέθοδο size():

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας ArrayList με στοιχεία τύπου String για τις κάρτες γραφικών (GPU)
    GPU.add("Nvidia"); // Προσθήκη του στοιχείου "Nvidia" στην ArrayList GPU
    GPU.add("AMD Radeon"); // Προσθήκη του στοιχείου "AMD Radeon" στην ArrayList GPU
    GPU.add("Intel"); // Προσθήκη του στοιχείου "Intel" στην ArrayList GPU
    System.out.println("Size of the ArrayList: " + GPU.size()); // Εκτύπωση του μεγέθους (αριθμού στοιχείων) της ArrayList GPU
  }
}

Ο κώδικας παραπάνω δημιουργεί μια ArrayList με το όνομα “GPU” και προσθέτει τρία στοιχεία (κάρτες γραφικών) σε αυτήν. Στη συνέχεια, εκτυπώνει το μέγεθος της ArrayList χρησιμοποιώντας τη μέθοδο “size()”. Αυτό σημαίνει ότι θα εμφανίσει τον αριθμό των στοιχείων που περιέχονται στη λίστα, που σε αυτήν την περίπτωση είναι 3.

Η έξοδος θα είναι:

Size of the ArrayList: 3

Παρατηρήστε ότι η μέθοδος size() επιστρέφει έναν ακέραιο αριθμό που αντιστοιχεί στον αριθμό των στοιχείων που περιέχει η λίστα.

Για να διατρέξετε τα στοιχεία μιας ArrayList με έναν βρόχο for, χρησιμοποιήστε τη μέθοδο size() για να καθορίσετε πόσες φορές πρέπει να επαναληφθεί ο βρόχος:

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία νέας λίστας με τα ονόματα των γραφικών καρτών

    GPU.add("Nvidia"); // Προσθήκη της γραφικής κάρτας "Nvidia" στη λίστα
    GPU.add("AMD Radeon"); // Προσθήκη της γραφικής κάρτας "AMD Radeon" στη λίστα
    GPU.add("Intel"); // Προσθήκη της γραφικής κάρτας "Intel" στη λίστα

    for (int i = 0; i < GPU.size(); i++) {
      System.out.println(GPU.get(i)); // Εκτύπωση των ονομάτων των γραφικών καρτών από τη λίστα
    }
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με ονόματα γραφικών καρτών και τα εκτυπώνει στην οθόνη. Ακολουθούν τα βήματα που ακολουθεί ο κώδικας:

  1. Ορίζεται η κλάση Main.
  2. Στη μέθοδο main, δημιουργείται μια νέα λίστα με τη βοήθεια της κλάσης ArrayList. Η λίστα αυτή ονομάζεται GPU και αποθηκεύει αντικείμενα τύπου String.
  3. Στη συνέχεια, προστίθενται τρία στοιχεία στη λίστα GPU με τη χρήση της μεθόδου add(). Τα στοιχεία αυτά είναι οι ονομασίες τριών γραφικών καρτών: “Nvidia”, “AMD Radeon” και “Intel”.
  4. Έπειτα, χρησιμοποιείται ένας βρόχος for για να επαναληφθεί η εκτέλεση εντολών για κάθε στοιχείο της λίστας GPU. Ο βρόχος ξεκινά από το 0 και τερματίζει όταν ο μετρητής i γίνει ίσος με το μέγεθος της λίστας.
  5. Μέσα στον βρόχο, χρησιμοποιείται η μέθοδος get() για να ανακτηθεί το στοιχείο της λίστας που βρίσκεται στη θέση i. Στη συνέχεια, με τη χρήση της System.out.println(), το στοιχείο αυτό εκτυπώνεται στην οθόνη.
  6. Ο βρόχος επαναλαμβάνεται μέχρι να εκτυπωθούν όλα τα στοιχεία της λίστας GPU.

Έτσι, ο κώδικας εμφανίζει τα ονόματα των γραφικών καρτών “Nvidia”, “AMD Radeon” και “Intel” στην οθόνη. Κάθε όνομα εμφανίζεται σε μια ξεχωριστή γραμμή, λόγω της χρήσης της System.out.println().

Η έξοδος θα είναι:

Nvidia
AMD Radeon
Intel

Παρατηρήστε ότι ο βρόχος επαναλαμβάνεται για τον αριθμό των στοιχείων που περιέχει η λίστα, που επιστρέφεται από τη μέθοδο size(). Η μέθοδος get(i) επιστρέφει το i-οστό στοιχείο της λίστας.

Μπορείτε επίσης να διατρέξετε μια ArrayList με τον βρόχο for-each:

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> GPU = new ArrayList<String>(); // Δημιουργία μιας νέας λίστας μεταβλητής GPU για αποθήκευση των επιλογών των κατασκευαστών καρτών γραφικών
    GPU.add("Nvidia"); // Προσθήκη της επιλογής "Nvidia" στη λίστα GPU
    GPU.add("AMD Radeon"); // Προσθήκη της επιλογής "AMD Radeon" στη λίστα GPU
    GPU.add("Intel"); // Προσθήκη της επιλογής "Intel" στη λίστα GPU

    for (String gpu : GPU) { // Επανάληψη μέσω των στοιχείων της λίστας GPU με τη χρήση του foreach
      System.out.println(gpu); // Εκτύπωση του κάθε στοιχείου της λίστας GPU
    }
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με τις επιλογές κατασκευαστών καρτών γραφικών (Nvidia, AMD Radeon, Intel) και στη συνέχεια εκτυπώνει τα στοιχεία αυτής της λίστας στην οθόνη.

Αρχικά, δημιουργείται μια νέα ArrayList με όνομα GPU, η οποία μπορεί να αποθηκεύσει αλφαριθμητικά (String). Έπειτα, προστίθενται τρία στοιχεία στη λίστα, τα “Nvidia”, “AMD Radeon” και “Intel”, χρησιμοποιώντας τη μέθοδο add().

Στη συνέχεια, χρησιμοποιείται η δομή επανάληψης for-each για να επαναληφθούν όλα τα στοιχεία της λίστας GPU. Κάθε στοιχείο αποθηκεύεται στη μεταβλητή gpu και εκτυπώνεται στην οθόνη χρησιμοποιώντας τη μέθοδο System.out.println().

Έτσι, το αποτέλεσμα στην οθόνη θα είναι η εκτύπωση των τριών επιλογών κατασκευαστών καρτών γραφικών: Nvidia, AMD Radeon και Intel, καθένα σε μια γραμμή.

Η έξοδος θα είναι:

Nvidia
AMD Radeon
Intel

Στο σώμα του for-each βρόχου, το gpu είναι μια μεταβλητή που αντιστοιχεί σε κάθε στοιχείο της λίστας καθώς το διατρέχουμε. Αυτό είναι πιο σύντομο από τον βρόχο for που χρησιμοποιεί τη μέθοδο get() για να ανακτήσει τα στοιχεία της λίστας.

[adinserter block=”4″]

Στα παραδείγματα παραπάνω, δημιουργήσαμε στοιχεία (αντικείμενα) τύπου “String”. Να θυμάστε ότι στην Java, το String είναι ένα αντικείμενο. Για να χρησιμοποιήσετε άλλους τύπους, όπως int, πρέπει να καθορίσετε ένα ισοδύναμο wrapper class: Integer. Για άλλους αρχέτυπους τύπους, χρησιμοποιήστε: Boolean για boolean, Character για char, Double για double, κλπ:

import java.util.ArrayList;

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

    numbers.add(1); // Προσθήκη του αριθμού 1 στη λίστα
    numbers.add(2); // Προσθήκη του αριθμού 2 στη λίστα
    numbers.add(3); // Προσθήκη του αριθμού 3 στη λίστα

    for (int i : numbers) {
      System.out.println(i); // Εκτύπωση του τρέχοντος αριθμού της λίστας
    }
  }
}

Ο παραπάνω κώδικας δημιουργεί μια λίστα με ακέραιους αριθμούς και προσθέτει τους αριθμούς 1, 2 και 3 σε αυτήν. Έπειτα, χρησιμοποιεί μια δομή επανάληψης for-each για να εκτυπώσει κάθε αριθμό που βρίσκεται στη λίστα σε ξεχωριστή γραμμή.

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

  1. Δημιουργείται μια νέα λίστα με όνομα “numbers” που περιέχει ακέραιους αριθμούς.
  2. Προστίθενται οι αριθμοί 1, 2 και 3 στη λίστα με τη χρήση της μεθόδου add().
  3. Χρησιμοποιείται η δομή επανάληψης for-each για να προσπελάσει κάθε στοιχείο της λίστας.
  4. Σε κάθε επανάληψη, ο τρέχον αριθμός από τη λίστα εκτυπώνεται στην οθόνη με τη χρήση της μεθόδου println() της κλάσης System.out, η οποία εμφανίζει το περιεχόμενο στο παράθυρο κονσόλας.

Έτσι, ο κώδικας εμφανίζει τους αριθμούς 1, 2 και 3 σε ξεχωριστές γραμμές στο παράθυρο κονσόλας.

Η έξοδος θα είναι:

1
2
3

Οι wrapper κλάσεις στην Java παρέχουν μια δυνατότητα μετατροπής πρωτογενούς τύπων σε αντικείμενα. Αυτό μας επιτρέπει να χρησιμοποιήσουμε αυτούς τους τύπους σε δομές δεδομένων που απαιτούν αντικείμενα, όπως η ArrayList. Στην περίπτωση που χρειάζεται να αποθηκεύσουμε έναν πρωτογενής τύπο (π.χ. έναν ακέραιο) σε μια ArrayList, μπορούμε να χρησιμοποιήσουμε την αντίστοιχη wrapper κλάση (στην περίπτωσή μας την Integer) για να το μετατρέψουμε σε ένα αντικείμενο. Έτσι, μπορούμε να το προσθέσουμε και να το χειριστούμε όπως οποιοδήποτε άλλο αντικείμενο στην ArrayList. Οι wrapper κλάσεις παρέχουν επίσης πολλές χρήσιμες μεθόδους και λειτουργίες για την επεξεργασία των τύπων αυτών..

Η κλάση Collections αποτελεί ένα επιπλέον χρήσιμο εργαλείο στο πακέτο java.util, που περιλαμβάνει τη μέθοδο sort() για την ταξινόμηση λιστών με βάση την αλφαβητική ή αριθμητική τους σειρά.

import java.util.ArrayList;
import java.util.Collections;

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

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

    Collections.sort(cars); // Ταξινόμηση της λίστας με αλφαβητική σειρά

    for (String i : cars) {
      System.out.println(i); // Εκτύπωση κάθε στοιχείου της λίστας στην οθόνη
    }
  }
}

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

  1. Δημιουργεί μια νέα λίστα με ονομασία “cars” τύπου ArrayList που περιέχει στοιχεία τύπου String.
  2. Προσθέτει τα αυτοκίνητα “Volvo”, “BMW”, “Ford” και “Mazda” στη λίστα “cars”.
  3. Ταξινομεί τη λίστα “cars” σε αλφαβητική σειρά.
  4. Εκτελεί μια επανάληψη (for-each loop) για κάθε αυτοκίνητο στη λίστα “cars”.
  5. Εντός της επανάληψης, εκτυπώνει το κάθε αυτοκίνητο στην οθόνη.

Έτσι, ο κώδικας εμφανίζει τη λίστα των αυτοκινήτων σε αλφαβητική σειρά στην κονσόλα.

Η έξοδος θα είναι:

BMW
Ford
Mazda
Volvo

Σημειώστε ότι η Collections.sort() ταξινομεί τα στοιχεία σε αύξουσα σειρά αν δεν δοθεί κάποιος Comparator. Για παράδειγμα, για να ταξινομήσετε μια λίστα με αριθμούς, πρέπει να δώσετε έναν αντίστοιχο Comparator:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>(); // Δημιουργία μιας νέας λίστας ακεραίων

    numbers.add(3); // Προσθήκη του αριθμού 3 στη λίστα
    numbers.add(2); // Προσθήκη του αριθμού 2 στη λίστα
    numbers.add(1); // Προσθήκη του αριθμού 1 στη λίστα

    Collections.sort(numbers, new Comparator<Integer>() {
      @Override
      public int compare(Integer o1, Integer o2) {
        return o2.compareTo(o1);
      }
    });

    for (int i : numbers) { // Διάσχιση της λίστας και εμφάνιση των στοιχείων
      System.out.println(i);
    }
  }
}

[adinserter block=”5″]

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

  1. Δημιουργεί μια λίστα με ονομασία numbers, η οποία αποθηκεύει ακέραιους αριθμούς.
  2. Προσθέτει τους αριθμούς 3, 2 και 1 στη λίστα.
  3. Χρησιμοποιεί τη μέθοδο Collections.sort() για να ταξινομήσει τους αριθμούς σε φθίνουσα σειρά.
  4. Χρησιμοποιεί ένα Comparator για να καθορίσει τον τρόπο ταξινόμησης, με την αντιστροφή της σειράς των αριθμών.
  5. Εκτυπώνει τους ταξινομημένους αριθμούς στην οθόνη, έναν-έναν, με τη χρήση της System.out.println().

Η έξοδος θα είναι:

3
2
1

Παράδειγμα

Ταξινομήστε μια λίστα από Integers:

import java.util.ArrayList;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    // Δημιουργία ενός ArrayList με ακέραιους αριθμούς
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(3);
    numbers.add(36);
    numbers.add(73);
    numbers.add(40);
    numbers.add(1);

    // Ταξινόμηση του ArrayList numbers
    Collections.sort(numbers);

    // Εκτύπωση του ταξινομημένου ArrayList
    for (Integer number : numbers) {
      System.out.println(number);
    }
  }
}

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

  1. Δημιουργεί ένα νέο αντικείμενο ArrayList με ονομασία “numbers”.
  2. Προσθέτει πέντε ακέραιους αριθμούς (3, 36, 73, 40, 1) στο ArrayList.
  3. Χρησιμοποιεί τη μέθοδο sort() από την κλάση Collections για να ταξινομήσει τους αριθμούς σε αύξουσα σειρά.
  4. Χρησιμοποιεί μια επανάληψη for-each για να εκτυπώσει τους αριθμούς του ArrayList, έναν προς έναν, στο παράθυρο κονσόλας.

Έτσι, ο κώδικας ταξινομεί τους αριθμούς και εκτυπώνει την ταξινομημένη λίστα αριθμών στην οθόνη. Συγκεκριμένα, η έξοδος που θα εμφανιστεί στην οθόνη θα είναι η εξής:

1
3
36
40
73
15 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων