Junior
Ποιες είναι οι υλοποιήσεις συλλογών σε Java για Android;
sobes.tech AI
Απάντηση από AI
Στο Android, για εργασία με συλλογές, διατίθενται οι προεπιλεγμένες υλοποιήσεις του Java Collections Framework, καθώς και εξειδικευμένες κλάσεις βελτιστοποιημένες για κινητές συσκευές με περιορισμένους πόρους.
Οι κύριες υλοποιήσεις συλλογών:
- ArrayList — δυναμικός πίνακας, καλός για γρήγορη πρόσβαση με δείκτη.
- LinkedList — διπλά συνδεδεμένη λίστα, αποτελεσματική για συχνές εισαγωγές και διαγραφές.
- HashMap — πίνακας κατακερματισμού για αποθήκευση ζευγών κλειδιού-τιμής με γρήγορη πρόσβαση.
- SparseArray — εξειδικευμένη υλοποίηση για αποθήκευση ζευγών ακέραιων κλειδιών και αντικειμένων, πιο αποδοτική στη μνήμη από το HashMap<Integer, Object>, ειδικά με λίγα στοιχεία.
- SparseBooleanArray, SparseIntArray, SparseLongArray — όμοια με το SparseArray για primitive τύπους, εξοικονομούν μνήμη.
Συνιστάται η χρήση του SparseArray και των παραλλαγών του στο Android, καθώς μειώνουν το φορτίο στον συλλέκτη απορριμμάτων και εξοικονομούν μνήμη σε σύγκριση με τα κανονικά HashMap, ειδικά όταν χρησιμοποιούνται primitive κλειδιά.
Παράδειγμα χρήσης του SparseArray:
SparseArray<String> sparseArray = new SparseArray<>();
sparseArray.put(1, "One");
sparseArray.put(2, "Two");
String value = sparseArray.get(1); // "One"
Έτσι, η επιλογή της συλλογής εξαρτάται από την εργασία και τις απαιτήσεις απόδοσης και μνήμης.