ArrayList σε Java

⚡ Έξυπνη Σύνοψη

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

  • 📦 Ορισμός ArrayList: Μια δυναμική δομή δεδομένων μεταβλητού μήκους που αλλάζει αυτόματα το μέγεθος καθώς αλλάζουν τα στοιχεία.
  • 🆚 έναντι πίνακα: Σε αντίθεση με έναν πίνακα σταθερού μήκους, ένας ArrayList μπορεί να μεγαλώνει και να συρρικνώνεται κατά το χρόνο εκτέλεσης.
  • προσθήκη() & αφαίρεση(): Προσθήκη στοιχείων στο τέλος ενός δεδομένου ευρετηρίου και αφαίρεση κατά αντικείμενο ή ευρετήριο.
  • 📏 μέγεθος() & περιέχει(): Η συνάρτηση size() επιστρέφει τον αριθμό των στοιχείων. Η συνάρτηση contains() επιστρέφει true εάν υπάρχει ένα στοιχείο.
  • 🔢 Δείκτης με βάση το μηδέν: Όπως και οι πίνακες, τα στοιχεία ArrayList ξεκινούν από το δείκτη 0.

ArrayList σε Java

Σε τι βρίσκεται το ArrayList Java?

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

Αναρωτιέστε πώς το ArrayList Java θα μπορούσε να είναι χρήσιμο, δείτε την παρακάτω συζήτηση -

Συστοιχία σε Java

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

Arraylist In Java

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

Ας δούμε και κατανοήσουμε το παρακάτω απόσπασμα κώδικα Java Σύνταξη ArrayList που θα σας βοηθήσει να εργαστείτε με το ArrayList.

ArrayList<Object> a = new ArrayList<Object>();

Μέθοδοι ArrayList σε Java

  • Προσθήκη ArrayList: Χρησιμοποιείται για την προσθήκη στοιχείων στη λίστα πίνακα. Εάν μια ArrayList περιέχει ήδη στοιχεία, το νέο στοιχείο προστίθεται μετά το τελευταίο στοιχείο, εκτός εάν έχει καθοριστεί το ευρετήριο.
    Σύνταξη:
    add(Object o);
  • Κατάργηση ArrayList: Το καθορισμένο στοιχείο αφαιρείται από τη λίστα και το μέγεθος μειώνεται ανάλογα. Εναλλακτικά, μπορείτε επίσης να καθορίσετε το ευρετήριο του στοιχείου που θα αφαιρεθεί.
    Σύνταξη:
    remove(Object o);
  • Java μέγεθος πίνακα: Αυτό θα σας δώσει τον αριθμό των στοιχείων στη λίστα Array. Όπως και οι πίνακες, έτσι και εδώ το πρώτο στοιχείο ξεκινά με δείκτη 0.
    Σύνταξη:
    int size();
  • Το ArrayList περιέχει: Αυτή η μέθοδος θα επιστρέψει true εάν η λίστα περιέχει το καθορισμένο στοιχείο.
    Σύνταξη:
    boolean contains(Object o);

Java Παράδειγμα ArrayList

Παρακάτω είναι ένα Java Παράδειγμα ArrayList:

import java.util.ArrayList;
class Test_ArrayList {
 public static void main(String[] args) {
  //Creating a generic ArrayList
  ArrayList<String> arlTest = new ArrayList<String>();
  //Size of arrayList
  System.out.println("Size of ArrayList at creation: " + arlTest.size());
  //Lets add some elements to it
  arlTest.add("D");
  arlTest.add("U");
  arlTest.add("K");
  arlTest.add("E");

  //Recheck the size after adding elements
  System.out.println("Size of ArrayList after adding elements: " + arlTest.size());

  //Display all contents of ArrayList
  System.out.println("List of all elements: " + arlTest);

  //Remove some elements from the list
  arlTest.remove("D");
  System.out.println("See contents after removing one element: " + arlTest);

  //Remove element by index
  arlTest.remove(2);
  System.out.println("See contents after removing element by index: " + arlTest);

  //Check size after removing elements
  System.out.println("Size of arrayList after removing elements: " + arlTest.size());
  System.out.println("List of all elements after removing elements: " + arlTest);

  //Check if the list contains "K"
  System.out.println(arlTest.contains("K"));

 }
}

Παραγωγή:

Size of ArrayList at creation: 0
Size of ArrayList after adding elements: 4
List of all elements: [D, U, K, E]
See contents after removing one element: [U, K, E]
See contents after removing element by index: [U, K]
Size of arrayList after removing elements: 2
List of all elements after removing elements: [U, K]
true

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

χρήση Java Arraylist

Συχνές Ερωτήσεις

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

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

Όχι. Το ArrayList δεν είναι συγχρονισμένο και δεν είναι ασφαλές για threads. Για ταυτόχρονη πρόσβαση, χρησιμοποιήστε το Collections.synchronizedList() ή το CopyOnWriteArrayList για να αποφύγετε την ασυνέπεια δεδομένων σε προγράμματα με πολλαπλά threads.

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

Ναι. Η Τεχνητή Νοημοσύνη μπορεί να προτείνει εάν θα χρησιμοποιηθεί το ArrayList, το LinkedList, το HashSet ή το HashMap με βάση το μοτίβο πρόσβασης, την ταξινόμηση και τις ανάγκες απόδοσης που περιγράφονται για το πρόγραμμά σας.

Συνοψίστε αυτήν την ανάρτηση με: