
Pahayag ng Suliranin
Dahil sa isang enum constant, ang layunin ay upang mahanap ang susunod na halaga ng enum sa sequence. Kung ang ibinigay na pare-pareho ay ang huling isa sa listahan, ang unang halaga ng enum ay dapat ibalik bilang susunod na halaga.
Solusyon
Upang malutas ang problemang ito, magsimula tayo sa pamamagitan ng paglikha ng isang enum class na tinatawag na DaysOfWeek bilang isang halimbawa. Magpapatuloy kami sa pagdaragdag ng isang paraan na tinatawag na getNext() na nagbabalik ng susunod na halaga ng enum sa pagkakasunud-sunod.
Narito ang isang step-by-step na walk-through ng code:
1. Una, gumawa ng enum class na tinatawag na DaysOfWeek at tukuyin ang mga enum constant nito.
public enum DaysOfWeek {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
2. Susunod, idagdag ang getNext() method sa loob ng DaysOfWeek enum class. Ibabalik ng pamamaraang ito ang susunod na halaga ng enum batay sa kasalukuyang halaga ng enum.
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. Ang getNext() method ay gumagana tulad ng sumusunod:
– Suriin muna namin kung ang kasalukuyang halaga ng enum ay ang huling isa sa listahan (sa pamamagitan ng paghahambing ng ordinal na halaga sa haba ng array ng mga halaga minus 1).
– Kung ang kasalukuyang halaga ng enum ay ang huli, ibinabalik namin ang unang halaga ng enum (ibig sabihin, LUNES).
– Kung hindi, ibinabalik namin ang susunod na halaga ng enum gamit ang ordinal na halaga upang i-index sa array ng mga halaga.
Magagamit na natin ngayon ang getNext() method para kunin ang susunod na enum value para sa anumang naibigay na enum constant.
Paggamit ng Mga Aklatan at Pag-andar
Ang Java ay nagbibigay ng ilang mga library at function na madaling gamitin kapag gumagamit ng mga enum . Narito ang ilang halimbawa:
EnumSet
- Ang EnumSet ng Java ay isang dalubhasa Itakda ang pagpapatupad na partikular na idinisenyo para sa mga enum. Ito ay napakahusay at nagbibigay ng mga pamamaraan upang magsagawa ng maramihang pagpapatakbo, tulad ng complement, unyon, intersection, at pagkakaiba.
EnumMap
- Ang EnumMap ay isa pang espesyal na koleksyon na sadyang idinisenyo para sa mga enum key. Katulad ng EnumSet, ito ay lubos na mahusay at nag-aalok ng makabuluhang pagpapabuti sa pagganap sa isang karaniwang HashMap na may mga enum key. Pinapanatili din ng EnumMap ang natural na pagkakasunud-sunod ng mga susi nito.
Sa konklusyon, ang mga enum sa Java ay nag-aalok ng isang uri-ligtas, mahusay, at maginhawang paraan ng pagtatrabaho sa mga kaugnay na constants. Ang solusyon na ibinigay sa artikulong ito ay nagpapakita kung paano kunin ang susunod na halaga ng enum na ibinigay sa isang partikular na enum constant. Bukod pa rito, nag-explore kami ng ilang makapangyarihang mga library at function ng Java na makakatulong sa pag-streamline ng aming trabaho sa mga enum, gaya ng EnumSet at EnumMap.