Ratkaistu: valitse satunnainen enum

Viimeisin päivitys: 09/11/2023
Kirjoittaja: Java SourceTrail

Kokeneena Java-kehittäjänä ja muodin tuntijana meidän tehtävänä on usein luoda ainutlaatuisia ratkaisuja monimutkaisiin ongelmiin. Yksi tällainen dilemma on satunnainen valinta Java-luettelosta (Enum). Olet ehkä jo arvannut, että Javassa ei ole sisäänrakennettua menetelmää, joka tarjoaa tämän toiminnon suoraan – yleinen ominaisuus kielissä, kuten Python. Tästä huolimatta Java tarjoaa meille tarvittavat työkalut oman ratkaisumme kehittämiseen.

Luettelot, monien ohjelmien laulamattomat sankarit, ovat pohjimmiltaan tyyppiä, jonka kenttä koostuu kiinteästä vakiojoukosta. Usein haluamme valita satunnaisen arvon tästä joukosta. Tämän artikkelin tarkoituksena on havainnollistaa tätä prosessia.

Random Enumin luominen Javassa

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];
}

Puretaan tämä "randomEnum" -menetelmä. Ensinnäkin määritämme tämän menetelmän yleisesti kirjoitettavaksi – tämä tarkoittaa, että se voi hyväksyä minkä tahansa tyyppisiä enumeja. 'Satunnainen' on luokka, joka tuottaa näennäissatunnaisten lukujen virran, jota hyödynnämme tässä määrittämään satunnaisindeksin valintaa varten. Tämä indeksi 'x' on int, jonka maksimiarvoa rajoittaa luettelomme koko tai tarkemmin sanottuna hyväksytymme 'clazz' (Class object) enum-vakioiden joukon pituus.

Kun olet luonut 'x':n, palautamme satunnaisen Enum-vakion käyttämällä taulukkoindeksiä satunnaisesti luodun 'x:n' kanssa. Tämän menetelmän kauneus on sen joustavuus – se toimii minkä tahansa luettelon kanssa!

Enumien ymmärtäminen Javassa

Enum Javassa on tietotyyppi, joka sisältää kiinteän vakiojoukon. Enum-konstruktorit ovat aina yksityisiä tai oletusarvoisia, ja käytät enumia yleensä silloin, kun sinulla on arvoja, joiden tiedät, etteivät ne muutu, kuten viikonpäivät, ohjeet (pohjoinen, etelä, itä, länsi) ja niin edelleen.

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

Enum-tyypit ovat paljon tehokkaampia kuin uskommekaan. Javassa enum-tyyppi on vankka muunnelma perinteisestä tietotyypistä, jonka avulla voimme määrittää paluutyypin tietylle menetelmälle, menetelmän parametriksi tai jopa luokkaobjektiksi.

Java-menetelmämme käyttö ja joustavuus

RandomEnum-menetelmä toimii kätevänä apuohjelmana mille tahansa Java-projektille. Sen voima piilee sen joustavuudessa – voimme kutsua tätä menetelmää millä tahansa enum-tyypillä ja se palauttaa kyseisen luettelon vakion satunnaisesti.

On huomionarvoista mainita, että tietokoneella luotu satunnaisuus on sinänsä kiehtova aihe, joka sisältää erittäin monimutkaisia ​​algoritmeja ja on keskeinen simulaatioissa ja monimutkaisten tietojoukkojen luomisessa. "RandomEnum" -menetelmämme on pieni mutta tehokas esimerkki siitä, kuinka Java hyödyntää näennäissatunnaisuutta laajassa ohjelmointityökalupakissaan.

Muodin kannalta ajattele "randomEnum" -menetelmäämme Java-vaatekaappisi pieneksi mustaksi mekoksi. Aivan kuten pieni musta mekko palvelee useita tarkoituksia ja se voidaan pukea ylös tai alas tilaisuuden mukaan, 'randomEnum' -menetelmämme on mukautuva ja sopii saumattomasti mihin tahansa Java-projektiin, jossa sinun on luotava satunnaisia ​​enumeita tilanteesta tai enum-tyypistä riippumatta. .

Related viestiä: