Πώς να χρησιμοποιήσετε το Java ArrayList
Το ArrayList είναι μία από τις πιο χρησιμοποιούμενες δομές δεδομένων στη Java. Σας επιτρέπει να τροποποιείτε δυναμικά και να αποθηκεύετε μια συλλογή αντικειμένων. Σε αυτό το σεμινάριο, σας παρουσιάζουμε τη σύνταξη του Java ArrayList και σας εξηγούμε πότε να το χρησιμοποιείτε.
Ποια είναι η διαφορά μεταξύ ArrayList και Array στη Java;
Το Java ArrayList είναι δυναμικό, πράγμα που σημαίνει ότι αυξάνεται και μειώνεται σε μέγεθος όταν προστίθενται ή αφαιρούνται στοιχεία. Αξίζει να σημειωθεί ότι η κλάση ArrayList αποτελεί μέρος του Java Collections Framework και δεν είναι διαθέσιμη εγγενώς. Σε αντίθεση με τους πίνακες, πρέπει να εισαχθεί από τη βιβλιοθήκη java.util.
Οι ArrayLists είναι μια κατάλληλη επιλογή όταν το μήκος μιας λίστας Java ενδέχεται να ποικίλλει. Παραδείγματα περιλαμβάνουν την αποθήκευση αντικειμένων, την αναζήτηση ή ταξινόμηση δεδομένων και τη δημιουργία λιστών ή ουρών.
Αντίθετα, δεν είναι δυνατό να αλλάξετε το μέγεθος ενός πίνακα. Αυτό σημαίνει ότι ιδανικά θα πρέπει να γνωρίζετε εκ των προτέρων τον αριθμό των αντικειμένων που θα περιέχει ο πίνακας. Οι πίνακες είναι κατάλληλοι για τη διαχείριση ενός προκαθορισμένου συνόλου πρωτότυπων τύπων δεδομένων, όπως int, float, char ή Boolean.
Ένα μειονέκτημα των ArrayLists είναι ότι μπορεί να χρειαστεί περισσότερος χρόνος για την πρόσβαση σε αυτά. Ενώ οι πίνακες έχουν ένα σταθερό συνεχές μπλοκ μνήμης, τα αντικείμενα στα ArrayLists δεν αποθηκεύονται συνεχόμενα. Είναι σημαντικό να λάβετε υπόψη τα πλεονεκτήματα και τα μειονεκτήματα των δομών δεδομένων, ώστε να μπορείτε να επιλέξετε εκείνη που ταιριάζει καλύτερα στην περίπτωσή σας.
Ποια είναι η σύνταξη για το Java ArrayList;
Πριν από τη δημιουργία του ArrayList, η αντίστοιχη κλάση πρέπει να εισαχθεί από τη βιβλιοθήκη java.util.
import java.util.ArrayList;JavaΗ γενική σύνταξη είναι:
ArrayList<Type> arrayList= new ArrayList<>();JavaΟ όρος «τύπος» αναφέρεται στον αντίστοιχο τύπο δεδομένων στο Java ArrayList.
Το επόμενο βήμα είναι να δημιουργήσετε λίστες με strings και integers στοιχεία.
ArrayList<String> arrayList= new ArrayList<>();JavaArrayList<Integer> arrayList= new ArrayList<>();JavaΟι ArrayLists χρησιμοποιούν την αντίστοιχη κλάση περιτύλιξης των πρωτόγονων τύπων δεδομένων, έτσι ώστε να αντιμετωπίζονται ως αντικείμενα. Αυτό σημαίνει ότι πρέπει να καθορίσετε integer αντί για int.
Παραδείγματα μεθόδων Java ArrayList
Λειτουργίες όπως η προσθήκη ή η αφαίρεση στοιχείων δεν εκτελούνται σε ArrayLists με Java operators, αλλά μέσω προκαθορισμένων μεθόδων. Παρακάτω θα σας παρουσιάσουμε τις πιο συνηθισμένες μεθόδους ArrayList.
Προσθήκη στοιχείων
Αφού δημιουργήσουμε το ArrayList «colours» (τύπουString ), θα προσθέσουμε διάφορα στοιχεία χρησιμοποιώντας τη μέθοδο .add().
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList<String> colours = new ArrayList<>();
colours.add("blue");
colours.add("red");
colours.add("green");
System.out.println("ArrayList: " + colours);
}
}JavaΑυτό έχει ως αποτέλεσμα:
ArrayList: [blue, red, green]JavaΑφαίρεση στοιχείων
Για να αφαιρέσουμε αντικείμενα από το Java ArrayList, χρησιμοποιούμε τη μέθοδο .remove() και καθορίζουμε τον δείκτη του στοιχείου.
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> colours = new ArrayList<>();
colours.add("blue");
colours.add("red");
colours.add("green");
System.out.println("ArrayList: " + colours);
String colour = colours.remove(1);
System.out.println("ArrayList: " + colours);
System.out.println("Removed Element: " + colour);
}
}JavaΗ έξοδος εμφανίζει το τροποποιημένο ArrayList και το στοιχείο που έχει αφαιρεθεί:
ArrayList: [blue, green]
Removed Element: redJavaΌπως και στις περισσότερες γλώσσες προγραμματισμού, η μέτρηση στη Java ξεκινά από το 0. Αυτό σημαίνει ότι το στοιχείο που αφαιρέθηκε στον δείκτη 1 είναι red.
Πρόσβαση σε στοιχεία στο Java ArrayList
Χρησιμοποιώντας τη συνάρτηση .get(), μπορούμε να έχουμε πρόσβαση σε ένα στοιχείο σε μια συγκεκριμένη θέση.
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> clothes = new ArrayList<>();
clothes.add("jacket");
clothes.add("shirt");
clothes.add("pullover");
System.out.println("ArrayList: " + clothes);
String str = clothes.get(2);
System.out.print("Element at index 2: " + str);
}
}JavaΓια την έξοδο έχουμε:
ArrayList: [jacket, shirt, pullover]
Element at index 2: pulloverJavaΑλλαγή στοιχείων
Με .set(), μπορούμε να αλλάξουμε ένα στοιχείο αναθέτοντας ένα νέο στοιχείο σε έναν συγκεκριμένο δείκτη.
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> colours = new ArrayList<>();
colours.add("blue");
colours.add("red");
colours.add("green");
System.out.println("ArrayList: " + colours);
colours.set(2, "yellow");
System.out.println("Modified ArrayList: " + colours);
}
}JavaΤώρα βλέπουμε yellow αντί για green στον δείκτη 2:
ArrayList: [blue, red, green]
Modified ArrayList: [blue, red, yellow]JavaΠροσδιορισμός του μήκους του Java ArrayList
Ο αριθμός των στοιχείων στο ArrayList μπορεί εύκολα να υπολογιστεί χρησιμοποιώντας τη μέθοδο .size().
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> colours = new ArrayList<>();
colours.add("blue");
colours.add("red");
colours.add("green");
System.out.println(colours.size());
}
}JavaΑυτό είναι το αποτέλεσμα:
3JavaΤαξινόμηση και επανάληψη μέσω ArrayList
Για να ταξινομήσετε το Java ArrayList, πρέπει να εισαχθεί η κλάση συλλογών. Για την επανάληψη, χρησιμοποιούμε έναν βρόχο Java for-each. Για κάθε επανάληψη του βρόχου, το αντίστοιχο στοιχείο εξάγεται στην κονσόλα.
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> ages = new ArrayList<Integer>();
ages.add(20);
ages.add(54);
ages.add(17);
ages.add(9);
Collections.sort(ages);
for (int i : ages) {
System.out.println(i);
}
}
}JavaΤα στοιχεία του ArrayList εμφανίζονται από το μικρότερο προς το μεγαλύτερο:
9
17
20
54Javadc8b52a43898356b40686188ee9833ee
2ff1ee966561e624dab43c433c815fd9