-
Notifications
You must be signed in to change notification settings - Fork 273
Expand file tree
/
Copy pathTransitMapRepository.java
More file actions
78 lines (62 loc) · 2.51 KB
/
Copy pathTransitMapRepository.java
File metadata and controls
78 lines (62 loc) · 2.51 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
package subway.repository;
import subway.domain.Line;
import subway.domain.Station;
import subway.domain.TransitMap;
import java.util.*;
/**
* TransitMapRepository.java : 지하철 노선도에 대한 저장소 클래스
*
* @author Daeun Lee
* @version 1.0
*/
public class TransitMapRepository {
private static final Map<Line, LinkedList<Station>> transitMaps = new LinkedHashMap<>();
public static Map<Line, LinkedList<Station>> transitMaps() {
return Collections.unmodifiableMap(transitMaps);
}
public static void addTransitMap(TransitMap transitMap) {
transitMaps.put(transitMap.getTransitMapLine(), transitMap.getTransitMapStations());
}
public static void deleteTransitMap(Line line) {
transitMaps.remove(line);
}
public static List<String> transitMapsLineNames() {
List<String> transitMapsLineNames = new ArrayList<>();
for (Map.Entry<Line, LinkedList<Station>> entry : transitMaps.entrySet()) {
Line key = entry.getKey();
transitMapsLineNames.add(key.getName());
}
return transitMapsLineNames;
}
public static List<LinkedList<String>> transitMapsStationNames() {
List<LinkedList<String>> transitMapsStationNames = new ArrayList<>();
for (Map.Entry<Line, LinkedList<Station>> entry : transitMaps.entrySet()) {
LinkedList<String> transitMapStationNames = new LinkedList<>();
LinkedList<Station> values = entry.getValue();
for (Station value : values) {
transitMapStationNames.add(value.getName());
}
transitMapsStationNames.add(transitMapStationNames);
}
return transitMapsStationNames;
}
public static List<String> transitMapStations(String lineName) {
List<String> transitMapStations = new ArrayList<>();
for (Map.Entry<Line, LinkedList<Station>> entry : transitMaps.entrySet()) {
Line key = entry.getKey();
String keyName = key.getName();
LinkedList<Station> values = entry.getValue();
if (keyName.equals(lineName)) {
transitMapStations = getTransitMapStations(values);
}
}
return transitMapStations;
}
public static List<String> getTransitMapStations(LinkedList<Station> values) {
List<String> transitMapStations = new ArrayList<>();
for (Station value : values) {
transitMapStations.add(value.getName());
}
return transitMapStations;
}
}