U svijetu programiranja, enumi u Javi su zgodan i učinkovit način predstavljanja grupe povezanih konstanti. Oni pružaju robusnu alternativu tradicionalnoj cjelobrojnoj konstanti koja je sigurna za tipove. U ovom ćemo članku raspravljati o tome kako dobiti sljedeću enum vrijednost s obzirom na određenu enum konstantu. Proći ćemo kroz cijeli proces, od stvaranja enum klase do implementacije metode za postizanje našeg cilja. Osim toga, istražit ćemo neke uobičajene Java biblioteke i funkcije koje bi mogle biti korisne pri radu s enumima. Dakle, zaronimo u svijet enuma i steknimo bolje razumijevanje njihove korisnosti i primjene u programskom jeziku Java.
Izjava o problemu
S obzirom na enum konstantu, cilj je pronaći sljedeću enum vrijednost u nizu. Ako je navedena konstanta posljednja na popisu, tada bi prva enum vrijednost trebala biti vraćena kao sljedeća vrijednost.
Riješenje
Da bismo riješili ovaj problem, počnimo stvaranjem enum klase pod nazivom DaysOfWeek kao primjer. Zatim ćemo nastaviti s dodavanjem metode pod nazivom getNext() koja vraća sljedeću enum vrijednost u nizu.
Evo korak-po-korak prolaska kroz kod:
1. Prvo stvorite enum klasu pod nazivom DaysOfWeek i definirajte njene enum konstante.
public enum DaysOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; }
2. Zatim dodajte metodu getNext() unutar enum klase DaysOfWeek. Ova metoda će vratiti sljedeću enum vrijednost na temelju trenutne enum vrijednosti.
public enum DaysOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; public DaysOfWeek getNext() { if (this.ordinal() == DaysOfWeek.values().length - 1) { return MONDAY; } return DaysOfWeek.values()[this.ordinal() + 1]; } }
3. Metoda getNext() radi na sljedeći način:
– Prvo provjeravamo je li trenutna enum vrijednost posljednja na popisu (usporedbom redne vrijednosti s duljinom niza vrijednosti minus 1).
– Ako je trenutna enum vrijednost posljednja, vraćamo prvu enum vrijednost (tj. PONEDJELJAK).
– U suprotnom, vraćamo sljedeću enum vrijednost koristeći rednu vrijednost za indeksiranje u nizu vrijednosti.
Sada možemo upotrijebiti metodu getNext() za dohvaćanje sljedeće enum vrijednosti za bilo koju danu enum konstantu.
Korištenje biblioteka i funkcija
Java nudi nekoliko biblioteka i funkcija koje su korisne pri radu s enumima. Evo nekoliko primjera:
EnumSet
- Javin EnumSet je specijalizirani Implementacija skupa dizajnirana posebno za popise. Vrlo je učinkovit i pruža metode za izvođenje skupnih operacija, kao što su komplement, unija, presjek i razlika.
EnumMap
- EnumMap je još jedna specijalizirana zbirka dizajnirana posebno za enum ključeve. Slično kao i EnumSet, jest vrlo učinkovit i nudi značajna poboljšanja performansi preko standardnog HashMapa s ključevima enum. EnumMap također održava prirodni poredak svojih ključeva.
Zaključno, enumi u Javi nude siguran za tip, učinkovit i prikladan način rada sa povezanim konstantama. Rješenje navedeno u ovom članku pokazuje kako dohvatiti sljedeću enum vrijednost s obzirom na određenu enum konstantu. Osim toga, istražili smo neke moćne Java biblioteke i funkcije koje mogu pomoći u usmjeravanju našeg rada s enumima, kao što su EnumSet i EnumMap.