נפתרה: בחר ברשימה אקראית

העדכון אחרון: 09/11/2023

כמפתחי ג'אווה מנוסים וכאניני אופנה, לרוב מוטלת עלינו המשימה ליצור פתרונות ייחודיים לבעיות מורכבות. דילמה אחת כזו היא הבחירה האקראית מתוך ספירה (Enum) בג'אווה. אולי כבר ניחשתם שאין שיטה מובנית ב-Java שמספקת את הפונקציה הזו ישירות - תכונה שכיחה בשפות כמו Python. למרות זאת, Java מספקת לנו את הכלים הדרושים כדי לסובב את הפתרון שלנו.

ספירות, הגיבורים הבלתי מוזכרים של תוכניות רבות, הן בעצם סוג ששדהו מורכב מסט קבוע של קבועים. לעתים קרובות אנו רוצים לבחור ערך אקראי מתוך קבוצה זו. מטרת מאמר זה היא להמחיש תהליך זה.

יצירת Enum אקראי ב-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' הזו. ראשית, אנו מגדירים שיטה זו להיות מוקלדת באופן כללי - זה אומר שהיא יכולה לקבל תקצירים מכל סוג. 'אקראי' הוא מחלקה שיוצרת זרם של מספרים פסאודורנדומליים, שאנו משתמשים בהם כאן כדי לקבוע אינדקס אקראי לבחירה. אינדקס זה 'x' הוא int, שערכו המקסימלי מוגבל על ידי גודל הספירה שלנו או, ליתר דיוק, אורך מערך קבועי ה-enum של ה-'clazz' שעברנו (אובייקט Class).

לאחר יצירת 'x', אנו מחזירים קבוע Enum אקראי באמצעות אינדקס מערך עם ה-'x' שנוצר באקראי. היופי בשיטה זו הוא הגמישות שלה - היא עובדת עם כל ספירה!

הבנת Enums ב-Java

Enum ב-Java הוא סוג נתונים המכיל קבוצה קבועה של קבועים. בנאי Enum הם תמיד פרטיים או ברירת מחדל, ובדרך כלל אתה משתמש ב-Enums כאשר יש לך ערכים שאתה יודע שהם לא הולכים להשתנות, כמו ימים בשבוע, כיוונים (צפון, דרום, מזרח, מערב) וכן הלאה.

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY 
}

סוגי Enum הם הרבה יותר חזקים ממה שאנחנו חושבים. ב-Java, סוג ה-enum הוא גרסה חזקה של סוג הנתונים המסורתי המאפשר לנו להגדיר סוג החזרה עבור מתודה מסוימת, כפרמטר לשיטה זו או אפילו כאובייקט מחלקה.

שימוש וגמישות בשיטת Java שלנו

שיטת 'randomEnum' משמשת כלי עזר שימושי עבור כל פרויקט Java. הכוח שלה טמון בגמישות שלה - אנחנו יכולים לקרוא לשיטה הזו עם כל סוג enum והיא תחזיר קבוע של הספירה הזו באופן אקראי.

ראוי לציין כי אקראיות שנוצרת על ידי מחשב היא נושא מרתק בפני עצמו, הכולל אלגוריתמים מורכבים ביותר והוא מכריע בסימולציות וביצירת מערכי נתונים מורכבים. שיטת ה-'randomEnum' שלנו היא דוגמה קטנה אך רבת עוצמה לאופן שבו Java ממנפת פסאודורנדומליות בארגז הכלים העצום שלה לתכנות.

במונחים אופנתיים, חשבו על שיטת ה-'randomEnum' שלנו כשמלה השחורה הקטנה של ארון ה-Java שלכם. בדיוק כפי שהשמלה השחורה הקטנה משרתת מספר מטרות וניתן להלביש אותה למעלה או למטה בהתאם לאירוע, שיטת ה-'randomEnum' שלנו ניתנת להסתגלות, מתאימה בצורה חלקה לכל פרויקט ג'אווה שבו אתה צריך ליצור ערכים אקראיים, ללא קשר למצב או לסוג ה-enum. .

הודעות קשורות: