Ως έμπειρος προγραμματιστής Java και γνώστης της μόδας, έχουμε συχνά καθήκον να δημιουργούμε μοναδικές λύσεις σε πολύπλοκα προβλήματα. Ένα τέτοιο δίλημμα είναι η τυχαία επιλογή από μια απαρίθμηση (Enum) στην Java. Ίσως έχετε ήδη μαντέψει ότι δεν υπάρχει ενσωματωμένη μέθοδος στην Java που να παρέχει απευθείας αυτήν τη λειτουργία – μια συνηθισμένη δυνατότητα σε γλώσσες όπως η Python. Παρόλα αυτά, η Java μας παρέχει τα απαραίτητα εργαλεία για να περιγράψουμε τη δική μας λύση.
Οι απαριθμήσεις, οι αφανείς ήρωες πολλών προγραμμάτων, είναι ουσιαστικά ένας τύπος του οποίου το πεδίο αποτελείται από ένα σταθερό σύνολο σταθερών. Συχνά θέλουμε να επιλέξουμε μια τυχαία τιμή από αυτό το σύνολο. Ο στόχος αυτού του άρθρου είναι να επεξηγήσει αυτή τη διαδικασία.
Δημιουργία τυχαίου αριθμού σε Java
public static <T extends Enum<?>> T randomEnum(Class<T> clazz){ Random random = new Random(); int x = random.nextInt(clazz.getEnumConstants().length); return clazz.getEnumConstants()[x]; }
Ας αναλύσουμε αυτήν τη μέθοδο «randomEnum». Πρώτον, ορίζουμε αυτή τη μέθοδο να πληκτρολογείται γενικά – αυτό σημαίνει ότι μπορεί να δεχτεί αριθμούς οποιουδήποτε τύπου. Το "Random" είναι μια κλάση που δημιουργεί μια ροή ψευδοτυχαίων αριθμών, τους οποίους χρησιμοποιούμε εδώ για να προσδιορίσουμε έναν τυχαίο δείκτη για επιλογή. Αυτός ο δείκτης «x» είναι ένα int, η μέγιστη τιμή του οποίου περιορίζεται από το μέγεθος της απαρίθμησής μας ή, ακριβέστερα, από το μήκος του πίνακα των σταθερών enum του «clazz» που περάσαμε (αντικείμενο κλάσης).
Αφού δημιουργήσουμε το «x», επιστρέφουμε μια τυχαία σταθερά Enum χρησιμοποιώντας ευρετηρίαση πίνακα με το τυχαία παραγόμενο «x». Η ομορφιά αυτής της μεθόδου είναι η ευελιξία της - λειτουργεί με οποιαδήποτε απαρίθμηση!
Κατανόηση των Enums σε Java
Το Enum στην Java είναι ένας τύπος δεδομένων που περιέχει ένα σταθερό σύνολο σταθερών. Οι κατασκευαστές Enum είναι πάντα ιδιωτικοί ή προεπιλεγμένοι και συνήθως χρησιμοποιείτε το Enum όταν έχετε τιμές που γνωρίζετε ότι δεν πρόκειται να αλλάξουν, όπως οι ημέρες μιας εβδομάδας, οδηγίες (Βορράς, Νότος, Ανατολή, Δύση) και ούτω καθεξής.
public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Οι τύποι Enum είναι πολύ πιο ισχυροί από όσο νομίζουμε. Στην Java, ο τύπος enum είναι μια ισχυρή παραλλαγή του παραδοσιακού τύπου δεδομένων που μας επιτρέπει να ορίσουμε έναν τύπο επιστροφής για μια συγκεκριμένη μέθοδο, ως παράμετρο αυτής της μεθόδου ή ακόμα και ως αντικείμενο κλάσης.
Χρήση και ευελιξία της μεθόδου Java μας
Η μέθοδος «randomEnum» χρησιμεύει ως ένα εύχρηστο βοηθητικό πρόγραμμα για οποιοδήποτε έργο Java. Η δύναμή του έγκειται στην ευελιξία του – μπορούμε να ονομάσουμε αυτή τη μέθοδο με οποιονδήποτε τύπο enum και θα επιστρέψει μια σταθερά αυτής της απαρίθμησης τυχαία.
Αξίζει να σημειωθεί ότι η τυχαιότητα που δημιουργείται από υπολογιστή είναι από μόνη της ένα συναρπαστικό θέμα, που περιλαμβάνει εξαιρετικά πολύπλοκους αλγόριθμους και είναι καθοριστικής σημασίας στις προσομοιώσεις και στη δημιουργία πολύπλοκων συνόλων δεδομένων. Η μέθοδος «randomEnum» είναι ένα μικρό αλλά ισχυρό παράδειγμα του τρόπου με τον οποίο η Java αξιοποιεί τον ψευδοτυχαίο χαρακτήρα στην τεράστια εργαλειοθήκη προγραμματισμού της.
Σε όρους μόδας, σκεφτείτε τη μέθοδο «randomEnum» ως το μικρό μαύρο φόρεμα της Java ντουλάπας σας. Ακριβώς όπως το μικρό μαύρο φόρεμα εξυπηρετεί πολλαπλούς σκοπούς και μπορεί να ντυθεί πάνω ή κάτω ανάλογα με την περίσταση, η μέθοδος 'randomEnum' μας είναι προσαρμόσιμη και ταιριάζει άψογα σε οποιοδήποτε έργο Java όπου χρειάζεται να δημιουργήσετε τυχαίους αριθμούς, ανεξάρτητα από την κατάσταση ή τον τύπο enum .