Sobes.tech
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