Problémové prohlášení
Vzhledem k výčtové konstantě je cílem najít další výčtovou hodnotu v sekvenci. Pokud je daná konstanta poslední v seznamu, měla by být jako další hodnota vrácena první hodnota výčtu.
Řešení
Chcete-li tento problém vyřešit, začněme vytvořením třídy výčtu s názvem DaysOfWeek jako příklad. Poté přistoupíme k přidání metody nazvané getNext(), která vrací další hodnotu výčtu v sekvenci.
Zde je podrobný průvodce kódem:
1. Nejprve vytvořte výčtovou třídu nazvanou DaysOfWeek a definujte její výčtové konstanty.
public enum DaysOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; }
2. Dále přidejte metodu getNext() do třídy výčtu DaysOfWeek. Tato metoda vrátí další hodnotu výčtu na základě aktuální hodnoty výčtu.
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() funguje následovně:
– Nejprve zkontrolujeme, zda je aktuální hodnota výčtu poslední v seznamu (porovnáním ordinální hodnoty s délkou pole hodnot mínus 1).
– Pokud je aktuální hodnota výčtu poslední, vrátíme první hodnotu výčtu (tj. PONDĚLÍ).
– V opačném případě vrátíme další hodnotu výčtu pomocí ordinální hodnoty k indexování do pole hodnot.
Nyní můžeme použít metodu getNext() k načtení další hodnoty výčtu pro jakoukoli danou konstantu výčtu.
Využití knihoven a funkcí
Java poskytuje několik knihoven a funkcí, které se hodí při práci s výčty. Zde je několik příkladů:
EnumSet
- Java EnumSet je specializovaná Implementace sady navržená speciálně pro výčty. Je velmi efektivní a poskytuje metody pro provádění hromadných operací, jako je doplnění, sjednocení, průnik a rozdíl.
EnumMap
- EnumMap je další specializovaná kolekce navržená speciálně pro enum klíče. Stejně jako EnumSet je vysoce efektivní a nabízí výrazné zlepšení výkonu přes standardní HashMap s enum klíči. EnumMap také zachovává přirozené pořadí svých klíčů.
Závěrem lze říci, že výčty v Javě nabízejí typově bezpečný, efektivní a pohodlný způsob práce se souvisejícími konstantami. Řešení uvedené v tomto článku ukazuje, jak načíst další hodnotu výčtu s konkrétní konstantou výčtu. Kromě toho jsme prozkoumali některé výkonné Java knihovny a funkce, které mohou pomoci zefektivnit naši práci s výčty, jako jsou EnumSet a EnumMap.