Išspręsta: pasirinkite atsitiktinį sąrašą

Kadangi esame patyrę „Java“ kūrėjai ir mados žinovai, mums dažnai tenka užduotis kurti unikalius sudėtingų problemų sprendimus. Viena iš tokių dilemų yra atsitiktinis pasirinkimas iš sąrašo (Enum) Java. Galbūt jau atspėjote, kad „Java“ nėra integruoto metodo, kuris tiesiogiai teiktų šią funkciją – įprasta funkcija tokiose kalbose kaip Python. Nepaisant to, „Java“ suteikia mums reikalingų įrankių, kad galėtume sukurti savo sprendimą.

Sąrašai, daugelio programų neapdainuoti herojai, iš esmės yra tipas, kurio lauką sudaro fiksuotas konstantų rinkinys. Dažnai norime pasirinkti atsitiktinę reikšmę iš šio rinkinio. Šio straipsnio tikslas yra iliustruoti šį procesą.

Atsitiktinis Enum generavimas 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];
}

Išskaidykime šį „atsitiktinės eilės“ metodą. Pirma, apibrėžiame šį metodą, kad jis būtų įvestas bendrai – tai reiškia, kad jis gali priimti bet kokio tipo enums. „Atsitiktinė“ yra klasė, generuojanti pseudoatsitiktinių skaičių srautą, kurį čia naudojame atsitiktiniam pasirinkimo indeksui nustatyti. Šis indeksas „x“ yra int, kurio didžiausią reikšmę riboja mūsų sąrašo dydis arba, tiksliau, mūsų perduoto „clazz“ (klasės objektas) enum konstantų masyvo ilgis.

Sukūrę „x“, grąžiname atsitiktinę „Enum“ konstantą, naudodami masyvo indeksavimą su atsitiktinai sugeneruotu „x“. Šio metodo grožis yra jo lankstumas – jis veikia su bet kokiu išvardinimu!

„Enums“ supratimas „Java“.

Enum Java yra duomenų tipas, kuriame yra fiksuotas konstantų rinkinys. Enum konstruktoriai visada yra privatūs arba numatytieji, ir jūs paprastai naudojate Enums, kai turite verčių, kurios, kaip žinote, nesikeis, pvz., savaitės dienos, kryptys (šiaurė, pietai, rytai, vakarai) ir pan.

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

Enum tipai yra daug galingesni, nei mes manome. Java, enum tipas yra patikimas tradicinio duomenų tipo variantas, leidžiantis apibrėžti tam tikro metodo grąžinimo tipą, kaip to metodo parametrą ar net kaip klasės objektą.

Mūsų „Java“ metodo naudojimas ir lankstumas

„RandomEnum“ metodas yra patogus įrankis bet kuriam „Java“ projektui. Jo galia slypi jo lankstumui – šį metodą galime vadinti bet kokiu enum tipu ir jis atsitiktinai grąžins to sąrašo konstantą.

Pažymėtina, kad kompiuterio sukurtas atsitiktinumas yra patraukli tema, apimanti labai sudėtingus algoritmus ir yra labai svarbi modeliuojant bei kuriant sudėtingus duomenų rinkinius. Mūsų „randomEnum“ metodas yra mažas, bet galingas pavyzdys, kaip „Java“ panaudoja pseudoatsitiktiškumą savo didžiulėje programavimo įrankių rinkinyje.

Kalbant apie madą, pagalvokite apie mūsų „randomEnum“ metodą kaip mažą juodą jūsų „Java“ drabužių spintos suknelę. Kaip maža juoda suknelė skirta įvairiems tikslams ir gali būti aprengta aukštyn arba žemyn, priklausomai nuo progos, mūsų „randomEnum“ metodas yra pritaikomas ir sklandžiai tinka bet kokiam „Java“ projektui, kuriame reikia generuoti atsitiktinius sąrašus, nepaisant situacijos ar sąrašo tipo. .

Susijusios naujienos:

Palikite komentarą