-
Notifications
You must be signed in to change notification settings - Fork 174
Expand file tree
/
Copy pathComputerNumber.java
More file actions
40 lines (32 loc) · 994 Bytes
/
ComputerNumber.java
File metadata and controls
40 lines (32 loc) · 994 Bytes
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
package baseball.model;
import lombok.RequiredArgsConstructor;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
@RequiredArgsConstructor
public final class ComputerNumber {
private static final Random RANDOM = new Random();
private final List<Integer> digits;
public static ComputerNumber createRandom() {
Set<Integer> set = new LinkedHashSet<>();
while (set.size() < 3) {
int n = RANDOM.nextInt(9) + 1; // 1~9
set.add(n); // 중복 자동 제거
}
return new ComputerNumber(new ArrayList<>(set));
}
public int digitAt(int index) {
return digits.get(index);
}
public boolean contains(int digit) {
return digits.contains(digit);
}
public int size() {
return digits.size();
}
public static ComputerNumber of(List<Integer> digits) {
return new ComputerNumber(digits);
}
}