Συχνά στους junior programmers έρχομαι αντιμέτωπος με το πρόβλημα του να χρησιμοποιούν ένα collection implementation, συνήθως ArrayList ή HashSet, επειδή απλά αυτό βλέπουν συχνά χωρίς να ξέρουν τις ιδιαιτερότητές του με αποτέλεσμα διάφορα προβλήματα όπως να χάνεται η σειρά ενώ τη χρειάζονται, να χάνονται διπλές εγγραφές κλπ.
Οπότε αποφάσισα να γράψω αυτόν τον οδηγό για την κατάλληλη επιλογή του
- Θέλω Λίστα
- Θέλω διπλές εγγραφές: ArrayList
- ΔΕΝ θέλω διπλές εγγραφές
- ΔΕΝ θα ψάχνω συχνά για contains: ArrayList
- Θα ψάχνω συχνά για contains αλλά δεν με ενδιαφέρει η σειρά: HashSet
- Θα ψάχνω συχνά για contains Ή με ενδιαφέρει η σειρά εισαγωγής:LinkedHashSet
- Θα ψάχνω συχνά για contains Ή με ενδιαφέρει η αυτόματη ταξινόμηση:TreeHashSet
- Θέλω key/value ζεύγη
- Δεν με ενδιαφέρει η σειρά: HashMap
- Με ενδιαφέρει η σειρά και συγκεκριμένα:
- Αυτόματη ταξινόμηση των κλειδιών: TreeMap
- Διατήρηση της σειράς εισαγωγής: LinkedHashMap
Τα παραπάνω τα έβαλα και σε μια εικόνα για μεγαλύτερη ευκολία