Junior
Μπορείς να εξηγήσεις τις διαφορές μεταξύ List, Set και Map, καθώς και σε ποιες περιπτώσεις πρέπει να χρησιμοποιούνται;
sobes.tech AI
Απάντηση από AI
List - μια διατεταγμένη συλλογή που επιτρέπει διπλότυπα. Τα στοιχεία είναι προσβάσιμα μέσω δείκτη.
Set - μια μη διατεταγμένη συλλογή μοναδικών στοιχείων. Δεν επιτρέπει διπλότυπα.
Map - μια συλλογή από ζεύγη "κλειδί-τιμή", όπου κάθε κλειδί είναι μοναδικό. Τα στοιχεία είναι προσβάσιμα μέσω κλειδιού.
Πίνακας σύγκρισης:
| Χαρακτηριστικό | List | Set | Map |
|---|---|---|---|
| Διαταξιμότητα | Ναι | Όχι | Με την σειρά προσθήκης (όχι πάντα) |
| Διπλότυπα | Επιτρέπονται | Δεν επιτρέπονται | Τα κλειδιά είναι μοναδικά, οι τιμές μπορούν να επαναλαμβάνονται |
| Πρόσβαση | Μέσω δείκτη | Μέσω επανάληψης | Μέσω κλειδιού |
- Χρήση:
List: Όταν η σειρά των στοιχείων είναι σημαντική και επιτρέπονται διπλότυπα (π.χ., λίστα αγορών, ιστορικό συναλλαγών).Set: Όταν χρειάζεστε μια συλλογή μοναδικών στοιχείων και η σειρά δεν έχει σημασία (π.χ., σύνολο μοναδικών χρηστών, λίστα μοναδικών ετικετών).Map: Όταν θέλετε να αποθηκεύσετε δεδομένα σε ζεύγη "κλειδί-τιμή" και να έχετε γρήγορη πρόσβαση σε μια τιμή μέσω κλειδιού (π.χ., λεξικό, ρυθμίσεις εφαρμογής).
Παράδειγμα:
// List
val shoppingList = listOf("μήλο", "μπανάνα", "μήλο")
println(shoppingList[0]) // μήλο
// Set
val uniqueFruits = setOf("μήλο", "μπανάνα", "μήλο")
println(uniqueFruits.size) // 2 (το μήλο εμφανίζεται μόνο μία φορά)
// Map
val userAges = mapOf("Αλίκη" to 30, "Μπράιαν" to 25)
println(userAges["Αλίκη"]) // 30