-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTest.java
More file actions
129 lines (95 loc) · 3.71 KB
/
Test.java
File metadata and controls
129 lines (95 loc) · 3.71 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package r_Enum;
import java.sql.SQLSyntaxErrorException;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import static r_Enum.MyWeekDay.*;
import static r_Enum.CommandList.*;
public class Test {
public static void main(String[] args) {
testGenderEnum();
testMyWeekDayEnum();
compareEnum();
implementInterfaceInEnum();
reverseLookUp();
rangeLookUp();
}
private static void rangeLookUp(){
System.out.println("---------------- rangeLookUp -------------");
EnumSet<MyWeekDay> days = EnumSet.allOf(MyWeekDay.class);
printArray(days.toArray()); // SATURDAY SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY
EnumSet<MyWeekDay> workingDays = EnumSet.range(SUNDAY,THURSDAY);
printArray(workingDays.toArray()); // SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY
EnumSet<MyWeekDay> holidays = EnumSet.complementOf(workingDays);
printArray(holidays.toArray()); // SATURDAY FRIDAY
}
private static void reverseLookUp(){
System.out.println("----------------- reverseLookUp -----------------------");
System.out.println(MyWeekDay.valueOf("SATURDAY")); // SATURDAY
System.out.println(MyWeekDay.values()[0]); // SATURDAY
}
private static void implementInterfaceInEnum(){
System.out.println("------------------ implementInterfaceInEnum ---------------");
RUN.execute(); // Running
JUMP.execute(); // Jumping
}
//nested enum
public enum NestedEnum{
MY_VALUE1,MY_VALUE2;
}
private static void compareEnum(){
System.out.println(" ------------------- compareEnum ----------------");
Gender gender1 = Gender.MALE;
Gender gender2 = Gender.FEMALE;
Gender gender3 = Gender.MALE;
MyWeekDay day1 = SATURDAY;
MyWeekDay day2 = MONDAY;
MyWeekDay day3 = MONDAY;
// compareTo
System.out.println(gender1.compareTo(gender2)); // -1
System.out.println(gender1.compareTo(gender3)); // 0
// equals
System.out.println(gender1.equals(day1)); // false
System.out.println(day1.equals(day2)); // false
System.out.println(day2.equals(day2)); // true
// ==
System.out.println(gender1 == gender3); // true
System.out.println(day1 == day3); // false
}
private static void testMyWeekDayEnum(){
// statically imported. So can be directly used by constant name
System.out.println(SATURDAY.name());
ArrayList<MyWeekDay> days = new ArrayList<>();
days.add(SATURDAY);
days.add(MONDAY);
days.add(THURSDAY);
System.out.println(countWorkingDays(days)); // 2
}
private static int countWorkingDays(List<MyWeekDay> days){
int counter = 0;
for(MyWeekDay day : days){
if(day.isHoliday()) continue;
counter++;
}
return counter;
}
private static void testGenderEnum(){
System.out.println(Gender.MALE); // MALE
System.out.println(Gender.FEMALE); // FEMALE
System.out.println(Gender.OTHERS); // OTHERS
System.out.println(Gender.MALE.name()); // MALE
System.out.println(Gender.FEMALE.name()); // FEMALE
System.out.println(Gender.OTHERS.name()); // OTHERS
System.out.println(Gender.MALE.ordinal()); // 0
System.out.println(Gender.FEMALE.ordinal()); // 1
System.out.println(Gender.OTHERS.ordinal()); // 2
Gender[] values = Gender.values();
printArray(values); // MALE FEMALE OTHERS
}
private static<T> void printArray(T[] arr){
for(T t : arr){
System.out.print(t+" ");
}
System.out.println("");
}
}