μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Codeup
- go
- μ€λΈμ
- thymeleaf
- Spring
- Git
- golang
- 둬볡
- Vue.js
- Postman
- spring security
- μ½λμ
- μ€νλ§
- μκ³ λ¦¬μ¦
- MySQL
- JPA
- Gradle
- H2 μ€μΉ
- Spring Boot
- ν°μ€ν 리μ±λ¦°μ§
- java
- springboot
- νμ΄μ¬
- κΈ°μ΄100μ
- Python
- κ°μ¬μ€
- ν΄λ¦° μ½λ
- GitHub
- mariadb
- ν΄λ¦°μ½λ
- Today
- Total
nyximos.log
[Java] Enum λ³Έλ¬Έ
π©π λͺ©ν
μλ°μ μ΄κ±°νμ λν΄ νμ΅νμΈμ.
π©π» νμ΅ν κ²
- enum μ μνλ λ°©λ²
- enumμ΄ μ 곡νλ λ©μλ (values()μ valueOf())
- java.lang.Enum
- EnumSet
Enum Type
- μ¬λ¬ μμλ₯Ό μ μΈ ν λ νΈλ¦¬νκ² μ μΈν μ μλ λ°©λ²
- νλμ μ΄λ¦μ μμμ΄λ―λ‘ λλ¬Έμλ‘ νμνλ€.
- JDK 1.5μ μΆκ°λμλ€.
- JDK 1.5 μ΄μ μλ μμλ₯Ό μ΄κ±°ν λμ μ¬μ©νμλ€.
- μ΄κ±°ν λΆλΆμ μ μλ μμκ° μλμΌλ‘ μμ±λλ€.
- λ°λ‘ κ°μ μ§μ ν΄μ£Όμ§ μμλ μλμ μΌλ‘ 0λΆν° μμνλ μ μκ°μ΄ ν λΉλλ€. (ordinal() μ΄ μ΄κ±°ν μμκ° μ μλ μμ λ°ν)
- μ΄ μ μκ°μ λ΄λΆμ μΈ μ©λλ‘λ§ μ¬μ©λκΈ° μν κ²μ΄λΌμ μ¬μ©νμ§ μλ κ²μ΄ μ’λ€.
- μμμ κ°μ΄ λΆκ·μΉμ μΈ κ²½μ°μλ μ΄κ±°ν μμμ μ΄λ¦ μμ μνλ κ°μ κ΄νΈμ ν¨κ» μ μ΄μ€λ€.
enum μ μνλ λ°©λ²
enum ν€μλλ₯Ό μ¬μ©νλ€.
κ΄νΈ { } μμ μμμ μ΄λ¦μ λμ΄νλ€.
enum μ΄κ±°νμ΄λ¦ { μμλͺ
1, μμλͺ
2, ... }
enum Direction { EAST, SOUTH, WEST, NORTH }
μ μλ μμλ₯Ό μ¬μ©ν λλ μ΄κ±°ν.μμλͺ μΌλ‘ μ¬μ©νλ€.
ν΄λμ€μ static λ³μλ₯Ό μ°Έμ‘°νλ κ²κ³Ό λμΌνλ€.
class Unit{
int x, y;
Direction dir;
void init() {
dir = Direction.EAST;
}
}
enumμ΄ μ 곡νλ λ©μλ (values()μ valueOf())
String name( )
μ΄κ±°ν μμ μ΄λ¦μ λ¬Έμμ΄λ‘ λ°ννλ€.
int ordinal( )
μ΄κ±°ν μμκ° μ μλ μμλ₯Ό λ°ννλ€. (0λΆν° μμ)
λͺ¨λ μ΄κ±°νμ μ‘°μμΈ java.lang.Enum ν΄λμ€μ μ μλ κ²
T[ ] values( )
ν΄λΉ enumμμ μ μλ λͺ¨λ μμλ€μ λ°°μ΄λ‘ λ°ννλ€.
λͺ¨λ μ΄κ±°νμ μλμ μΌλ‘ μΆκ°ν΄μ£Όλ λ©μλ
T valueOf(Class<T> enumType, String name)
μ§μ λ enumTypeμμ nameκ³Ό μΌμΉνλ λ¬Έμμ΄ μμμ λν μ°Έμ‘°λ₯Ό λ°ννλ€.
λͺ¨λ μ΄κ±°νμ μλμ μΌλ‘ μΆκ°ν΄μ£Όλ λ©μλ
https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html
java.lang.Enum
λͺ¨λ μ΄κ±°νμ μ‘°μμ java.lang.Enumμ΄λ€.
μ€λͺ νλ λ©μλλ€μ΄ java.lang.Enum ν΄λμ€μ μ μλμ΄ μλ€.
λͺ¨λ μ΄κ±°νμ Enum ν΄λμ€λ₯Ό μμλ°κΈ° λλ¬Έμ enumμ λ€λ₯Έ κ²λ€μ μμλ°μ μ μλ€.
EnumSet
- μ΄κ±°νμ μ¬μ©νκΈ° μν Set μΈν°νμ΄μ€ ꡬν체
- Nullμ νμ©νμ§ μλλ€.
- λλΆλΆ 컬λ μ ꡬνκ³Ό λ§μ°¬κ°μ§λ‘ synchronize λμ§ μλλ€.
- λκΈ°μμΌλ‘ μ¬μ©νλ €λ©΄ μΈλΆμμ λκΈ°ννκ±°λ Collections.synchronizedSet(java.util.Set<T>) λ©μλλ₯Ό μ¬μ©νλ€.
EnumSet<E> allOf(Class<E> elementType)
μ§μ μμ νμ μ λͺ¨λ μμλ₯Ό ν¬ν¨νλ EnumSetμ μμ±νλ€.
EnumSet<E> of(@NotNull E e1, @NotNull E e2)
μ§μ ν μμλ₯Ό ν¬ν¨νλ EnumSetμ μμ±νλ€.
EnumSet<E> complementOf(@NotNull EnumSet<E> s)
μ§μ ν EnumSetκ³Ό λμΌν μμλ₯Ό κ°μ§ EnumSetμ μμ±νλ€.
EnumSet<E> range(@NotNull E from, @NotNull E to)
λ λμ μμ μ μλ λ²μμ λͺ¨λ μμλ₯Ό ν¬ν¨νλ EnumSetμ μμ±νλ€.
μμκ° λ€λ°λλ©΄ μλλ€.
EnumSet<E> noneOf(Class<E> elementType)
μ§μ ν κ°μ νμ μ λΉ EnumSetμ μμ±νλ€.
enum Coffe {
AERICANO, COLDBREW, CAPPUCCINO, LATTE, AFFOGATO, MOCHA
}
public class EnumTest {
public static void main(String[] args) {
EnumSet<Coffe> set1, set2, set3, set4, set5;
set1 = EnumSet.allOf(Coffe.class);
set2 = EnumSet.of(Coffe.LATTE, Coffe.AFFOGATO);
set3 = EnumSet.complementOf(set2);
set4 = EnumSet.range(Coffe.AERICANO, Coffe.CAPPUCCINO);
set5 = EnumSet.noneOf(Coffe.class);
set5.add(Coffe.COLDBREW);
set5.add(Coffe.MOCHA);
System.out.println("set1 = " + set1);
System.out.println("set2 = " + set2);
System.out.println("set3 = " + set3);
System.out.println("set4 = " + set4);
System.out.println("set5 = " + set5);
}
}
set1 = [AERICANO, COLDBREW, CAPPUCCINO, LATTE, AFFOGATO, MOCHA]
set2 = [LATTE, AFFOGATO]
set3 = [AERICANO, COLDBREW, CAPPUCCINO, MOCHA]
set4 = [AERICANO, COLDBREW, CAPPUCCINO]
set5 = [COLDBREW, MOCHA]
https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html
μ°Έμ‘°
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
'Programming > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] I/O (1) | 2022.09.21 |
---|---|
[Java] μ λ Έν μ΄μ (1) | 2022.09.11 |
[Java] λ©ν°μ°λ λ νλ‘κ·Έλλ° (0) | 2022.09.06 |
[Java] μμΈ μ²λ¦¬ (0) | 2022.09.01 |
[Java] μΈν°νμ΄μ€ (1) | 2022.08.29 |