Kogenud Java-arendaja ja moetundjana on meil sageli ülesanne luua keerulistele probleemidele ainulaadseid lahendusi. Üks selline dilemma on juhuslik valik Java keeles olevast loendist (Enum). Võib-olla olete juba arvanud, et Java-s pole sisseehitatud meetodit, mis seda funktsiooni otse pakuks – see on tavapärane funktsioon sellistes keeltes nagu Python. Sellest hoolimata pakub Java meile vajalikke tööriistu oma lahenduse loomiseks.
Loendused, paljude saadete laulmata kangelased, on sisuliselt tüüp, mille väli koosneb kindlast konstantide hulgast. Sageli soovime valida sellest komplektist juhusliku väärtuse. Selle artikli eesmärk on seda protsessi illustreerida.
Juhusliku loendi genereerimine Javas
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];
}
Jagame selle "randomEnum" meetodi lahti. Esiteks määrame selle meetodi üldiseks tüübiks – see tähendab, et see võib aktsepteerida mis tahes tüüpi enumeid. „Juhuslik” on klass, mis genereerib pseudojuhuslike arvude voo, mida kasutame siin juhusliku valiku indeksi määramiseks. See indeks "x" on int, mille maksimumväärtust piirab meie loendi suurus või täpsemalt meie läbitud "clazz" (klassi objekt) enum-konstantide massiivi pikkus.
Pärast "x" loomist tagastame juhusliku Enumi konstandi, kasutades massiivi indekseerimist meie juhuslikult genereeritud "x"-ga. Selle meetodi ilu seisneb selle paindlikkuses – see töötab iga loendusega!
Enumi mõistmine Javas
Enum Javas on andmetüüp, mis sisaldab kindlat konstantide komplekti. Enumi konstruktorid on alati privaatsed või vaikeseaded ja te kasutate Enumi tavaliselt siis, kui teil on väärtused, mida teate, et need ei muutu, näiteks nädalapäevad, juhised (põhja, lõuna, ida, lääs) jne.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
Enum-tüübid on palju võimsamad, kui me arvame. Javas on enum-tüüp traditsioonilise andmetüübi robustne variant, mis võimaldab meil määratleda teatud meetodi tagastustüübi, selle meetodi parameetrina või isegi klassiobjektina.
Meie Java-meetodi kasutamine ja paindlikkus
Meetod "randomEnum" on iga Java-projekti jaoks mugav utiliit. Selle võimsus seisneb paindlikkuses – seda meetodit võib nimetada mis tahes enumtüübiga ja see tagastab juhuslikult selle loendi konstandi.
Väärib märkimist, et arvuti genereeritud juhuslikkus on iseenesest põnev teema, mis hõlmab väga keerulisi algoritme ning on simulatsioonides ja keerukate andmekogumite genereerimisel kesksel kohal. Meie meetod „randomEnum” on väike, aga võimas näide sellest, kuidas Java kasutab pseudojuhuslikkust oma laias programmeerimistööriistakastis.
Moe mõttes mõelge meie "randomEnum" meetodile kui teie Java riidekapi väikesele mustale kleidile. Nii nagu väikesel mustal kleidil on mitu eesmärki ja seda saab olenevalt olukorrast üles või alla riietada, on meie "randomEnum" meetod kohandatav, sobides sujuvalt igasse Java projekti, kus peate genereerima juhuslikke loendeid, olenemata olukorrast või loendi tüübist. .