Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Робота з Enum у Java | Розширені Можливості та Техніки Java
Структури Даних Java

bookРобота з Enum у Java

Перейдемо до ще однієї доволі цікавої та, що найважливіше, особливої структури данихenum.

Розглянемо створення enum. Створення enum суттєво відрізняється від інших структур даних, оскільки виконується на рівні класу:

DaysOfTheWeek.java

DaysOfTheWeek.java

copy
123456789
public enum DaysOfTheWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }

Практичне застосування

Enum потрібен для зручного посилання на константу. Оскільки це перелік констант, доступ до них здійснюється наступним чином:

Main.java

Main.java

copy
123456789101112131415161718
package com.example; public class Main { public static void main(String[] args) { Days today = Days.MONDAY; System.out.println(today); } } enum Days { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

Тут ми просто звертаємося до константи enum, щоб визначити, який сьогодні день. Замість створення багатьох різних констант ми зберігаємо масив констант у enum. Це зручно та дуже практично. Наприклад, у одному з попередніх завдань можна було зберігати назви відділів у enum і використовувати константу як ключ.

Розглянемо приклад:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637
package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingEmployees = new ArrayList<>(); marketingEmployees.add("Michael"); marketingEmployees.add("Alice"); marketingEmployees.add("Jimmy"); List<String> developerEmployees = new ArrayList<>(); developerEmployees.add("Bob"); developerEmployees.add("John"); developerEmployees.add("Ryan"); List<String> analyticsEmployees = new ArrayList<>(); analyticsEmployees.add("Alexander"); analyticsEmployees.add("Ben"); Map<Departments, List<String>> company = new HashMap<>(); company.put(Departments.MARKETING, marketingEmployees); company.put(Departments.DEVELOPMENT, developerEmployees); company.put(Departments.ANALYTICS, analyticsEmployees); System.out.println("Company: " + company); } } enum Departments { MARKETING, DEVELOPMENT, ANALYTICS }

Перетворення в масив

До речі, ви також можете отримати всі константи з enum у вигляді масиву за допомогою методу values().

Розглянемо приклад:

Main.java

Main.java

copy
12345678910111213
package com.example; public class Main { public static void main(String[] args) { Days[] array = Days.values(); Days monday = array[1]; System.out.println(monday); } } enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }

Оголошення полів і методів у перерахуваннях (enum)

У перерахуваннях також можна оголошувати поля та методи.

Розглянемо приклад світлофора:

Main.java

Main.java

copy
12345678910111213
enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }

У перерахуваннях методи працюють дещо інакше. Оскільки це константи, їх не можна змінювати. Тому ми додаємо поля в конструктор цього enum, після чого визначаємо метод getAction(), який одразу повертає дію, яку потрібно виконати для конкретного сигналу світлофора. Як бачите, цю дію ми вказуємо безпосередньо в перерахуванні під час переліку констант.

Розглянемо приклад виклику такого методу:

Main.java

Main.java

copy
1234567891011121314151617181920212223
package com.example; public class Main { public static void main(String[] args) { TrafficLight currentLight = TrafficLight.RED; String currentAction = currentLight.getAction(); System.out.println("Action: " + currentAction); } } enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }

Як видно, за допомогою методу getAction() ми одразу отримали дію, яку потрібно виконати для певного світлофора. Ви можете змінити RED на будь-який інший колір і подивитися, що станеться.

Методи та поля в перерахуваннях використовуються не так часто, але така функціональність існує, тому варто про це знати. Більше про enum можна прочитати в Офіційній документації Java

Переваги Enum у Java

  1. Покращена читабельність: заміна числових констант і рядкових літералів іменованими значеннями робить код більш зрозумілим;
  2. Типобезпечність: компілятор забезпечує типобезпечність при роботі з enum, що запобігає помилкам, пов'язаним із типами;
  3. Обмежений набір значень: enum надає фіксований набір значень, що робить код більш передбачуваним;
  4. Можливість додавати методи та поля: enum може містити методи та поля, що робить їх потужнішими порівняно зі звичайними перерахуваннями.

1. Що таке enum у Java?

2. Як оголосити enum з назвою Months, що представляє місяці року?

3. Як отримати масив усіх значень у enum з назвою Colors?

4. Яке з наступних тверджень щодо цього enum є правильним?

5. Як правильно порівняти currentStatus із Status.ACTIVE? Розгляньте наступний enum:

question mark

Що таке enum у Java?

Select the correct answer

question mark

Як оголосити enum з назвою Months, що представляє місяці року?

Select the correct answer

question mark

Як отримати масив усіх значень у enum з назвою Colors?

Select the correct answer

question mark

Яке з наступних тверджень щодо цього enum є правильним?

Select the correct answer

question mark

Як правильно порівняти currentStatus із Status.ACTIVE? Розгляньте наступний enum:

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

What is the syntax for creating an enum in Java?

Can you show an example of how to use enums in a Java program?

What are some common use cases for enums in Java?

bookРобота з Enum у Java

Свайпніть щоб показати меню

Перейдемо до ще однієї доволі цікавої та, що найважливіше, особливої структури данихenum.

Розглянемо створення enum. Створення enum суттєво відрізняється від інших структур даних, оскільки виконується на рівні класу:

DaysOfTheWeek.java

DaysOfTheWeek.java

copy
123456789
public enum DaysOfTheWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }

Практичне застосування

Enum потрібен для зручного посилання на константу. Оскільки це перелік констант, доступ до них здійснюється наступним чином:

Main.java

Main.java

copy
123456789101112131415161718
package com.example; public class Main { public static void main(String[] args) { Days today = Days.MONDAY; System.out.println(today); } } enum Days { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

Тут ми просто звертаємося до константи enum, щоб визначити, який сьогодні день. Замість створення багатьох різних констант ми зберігаємо масив констант у enum. Це зручно та дуже практично. Наприклад, у одному з попередніх завдань можна було зберігати назви відділів у enum і використовувати константу як ключ.

Розглянемо приклад:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637
package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingEmployees = new ArrayList<>(); marketingEmployees.add("Michael"); marketingEmployees.add("Alice"); marketingEmployees.add("Jimmy"); List<String> developerEmployees = new ArrayList<>(); developerEmployees.add("Bob"); developerEmployees.add("John"); developerEmployees.add("Ryan"); List<String> analyticsEmployees = new ArrayList<>(); analyticsEmployees.add("Alexander"); analyticsEmployees.add("Ben"); Map<Departments, List<String>> company = new HashMap<>(); company.put(Departments.MARKETING, marketingEmployees); company.put(Departments.DEVELOPMENT, developerEmployees); company.put(Departments.ANALYTICS, analyticsEmployees); System.out.println("Company: " + company); } } enum Departments { MARKETING, DEVELOPMENT, ANALYTICS }

Перетворення в масив

До речі, ви також можете отримати всі константи з enum у вигляді масиву за допомогою методу values().

Розглянемо приклад:

Main.java

Main.java

copy
12345678910111213
package com.example; public class Main { public static void main(String[] args) { Days[] array = Days.values(); Days monday = array[1]; System.out.println(monday); } } enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }

Оголошення полів і методів у перерахуваннях (enum)

У перерахуваннях також можна оголошувати поля та методи.

Розглянемо приклад світлофора:

Main.java

Main.java

copy
12345678910111213
enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }

У перерахуваннях методи працюють дещо інакше. Оскільки це константи, їх не можна змінювати. Тому ми додаємо поля в конструктор цього enum, після чого визначаємо метод getAction(), який одразу повертає дію, яку потрібно виконати для конкретного сигналу світлофора. Як бачите, цю дію ми вказуємо безпосередньо в перерахуванні під час переліку констант.

Розглянемо приклад виклику такого методу:

Main.java

Main.java

copy
1234567891011121314151617181920212223
package com.example; public class Main { public static void main(String[] args) { TrafficLight currentLight = TrafficLight.RED; String currentAction = currentLight.getAction(); System.out.println("Action: " + currentAction); } } enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }

Як видно, за допомогою методу getAction() ми одразу отримали дію, яку потрібно виконати для певного світлофора. Ви можете змінити RED на будь-який інший колір і подивитися, що станеться.

Методи та поля в перерахуваннях використовуються не так часто, але така функціональність існує, тому варто про це знати. Більше про enum можна прочитати в Офіційній документації Java

Переваги Enum у Java

  1. Покращена читабельність: заміна числових констант і рядкових літералів іменованими значеннями робить код більш зрозумілим;
  2. Типобезпечність: компілятор забезпечує типобезпечність при роботі з enum, що запобігає помилкам, пов'язаним із типами;
  3. Обмежений набір значень: enum надає фіксований набір значень, що робить код більш передбачуваним;
  4. Можливість додавати методи та поля: enum може містити методи та поля, що робить їх потужнішими порівняно зі звичайними перерахуваннями.

1. Що таке enum у Java?

2. Як оголосити enum з назвою Months, що представляє місяці року?

3. Як отримати масив усіх значень у enum з назвою Colors?

4. Яке з наступних тверджень щодо цього enum є правильним?

5. Як правильно порівняти currentStatus із Status.ACTIVE? Розгляньте наступний enum:

question mark

Що таке enum у Java?

Select the correct answer

question mark

Як оголосити enum з назвою Months, що представляє місяці року?

Select the correct answer

question mark

Як отримати масив усіх значень у enum з назвою Colors?

Select the correct answer

question mark

Яке з наступних тверджень щодо цього enum є правильним?

Select the correct answer

question mark

Як правильно порівняти currentStatus із Status.ACTIVE? Розгляньте наступний enum:

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 1
some-alt