Atrisināts: izvēlieties nejaušu sarakstu

Pēdējā atjaunošana: 09/11/2023

Kā pieredzējis Java izstrādātājs un modes pazinējs mums bieži tiek uzdots radīt unikālus risinājumus sarežģītām problēmām. Viena no šādām dilemmām ir nejauša atlase no Java uzskaitījuma (Enum). Jūs, iespējams, jau uzminējāt, ka Java nav iebūvētas metodes, kas tieši nodrošinātu šo funkciju — tā ir parasta funkcija tādās valodās kā Python. Neskatoties uz to, Java nodrošina mums nepieciešamos rīkus, lai izstrādātu mūsu pašu risinājumu.

Uzskaitījumi, daudzu programmu neapdziedātie varoņi, būtībā ir veids, kura lauks sastāv no fiksētas konstantu kopas. Bieži vien mēs vēlamies atlasīt nejaušu vērtību no šīs kopas. Šī raksta mērķis ir ilustrēt šo procesu.

Random Enum ģenerēšana 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];
}

Sadalīsim šo “nejaušības” metodi. Pirmkārt, mēs definējam, ka šī metode ir vispārīgi drukāta – tas nozīmē, ka tā var pieņemt jebkura veida enums. “Nejaušs” ir klase, kas ģenerē pseidogadījuma skaitļu straumi, ko mēs izmantojam šeit, lai noteiktu izlases indeksu atlasei. Šis indekss “x” ir int, kura maksimālo vērtību ierobežo mūsu uzskaitījuma lielums vai, precīzāk, mūsu nodotā ​​“clazz” (klases objekta) enum konstantu masīva garums.

Pēc “x” izveidošanas mēs atgriežam nejaušu Enum konstanti, izmantojot masīva indeksēšanu ar mūsu nejauši ģenerēto “x”. Šīs metodes skaistums ir tās elastība – tā darbojas ar jebkuru uzskaitījumu!

Enumu izpratne Java valodā

Enum Java ir datu tips, kas satur fiksētu konstantu kopu. Enum konstruktori vienmēr ir privāti vai noklusējuma, un jūs parasti izmantojat Enums, ja jums ir vērtības, par kurām zināt, ka tās nemainīsies, piemēram, nedēļas dienas, virzieni (ziemeļi, dienvidi, austrumi, rietumi) utt.

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

Enum veidi ir daudz spēcīgāki, nekā mēs domājam. Java valodā enum tips ir tradicionālā datu tipa robusts variants, kas ļauj mums definēt atgriešanās veidu noteiktai metodei kā šīs metodes parametru vai pat kā klases objektu.

Mūsu Java metodes izmantošana un elastība

Metode “randomEnum” kalpo kā ērta utilīta jebkuram Java projektam. Tās spēks slēpjas tās elastībā – mēs varam saukt šo metodi ar jebkuru enum veidu, un tā nejauši atgriezīs šī uzskaitījuma konstanti.

Jāatzīmē, ka datora ģenerēta nejaušība pati par sevi ir aizraujoša tēma, kas ietver ļoti sarežģītus algoritmus un ir ļoti svarīga simulācijās un sarežģītu datu kopu ģenerēšanā. Mūsu “randomEnum” metode ir neliels, bet spēcīgs piemērs tam, kā Java savā plašajā programmēšanas rīku komplektā izmanto pseidogadījumu.

Modes izteiksmē domājiet par mūsu “randomEnum” metodi kā jūsu Java garderobes mazo melno kleitu. Tāpat kā mazajai melnajai kleitai ir vairāki mērķi, un to var ģērbt uz augšu vai uz leju atkarībā no gadījuma, mūsu “randomEnum” metode ir pielāgojama, nemanāmi iekļaujoties jebkurā Java projektā, kur jums ir jāģenerē nejauši enumi neatkarīgi no situācijas vai enum veida. .

Related posts: