From c3a254f7e92f3c4a1bac5865aa87631be0258978 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 13:17:40 +0900 Subject: [PATCH 01/15] =?UTF-8?q?docs:=20=EA=B8=B0=EB=8A=A5=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=B6=94=EA=B0=80=20(View,Domain,Controller)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..eaa5f45e4 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,21 @@ +## 기능목록 + + +### Domain +####역 + - 거리 정보 저장 + - 시간 정보 저장 +####라인 + - 라인 별 역 저장 + - 최단 거리 계산 + - 최소 시간 계산 + +### View + - InputView + - OutputView + +### Controller + - 메인화면 기능 선택 + - 최단 거리 경로 선택 + - 최소 시간 경로 선택 + From f0b7bdbd997075ead18af8b4811abe76d128d378 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 13:23:59 +0900 Subject: [PATCH 02/15] =?UTF-8?q?feat:=20=EC=9E=85=EB=A0=A5=EB=AC=B8=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/Application.java | 1 + src/main/java/subway/View/InputView.java | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/main/java/subway/View/InputView.java diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index 0bcf786cc..39941188c 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -7,4 +7,5 @@ public static void main(String[] args) { final Scanner scanner = new Scanner(System.in); // TODO: 프로그램 구현 } + } diff --git a/src/main/java/subway/View/InputView.java b/src/main/java/subway/View/InputView.java new file mode 100644 index 000000000..92c4e2182 --- /dev/null +++ b/src/main/java/subway/View/InputView.java @@ -0,0 +1,23 @@ +package subway.View; + +import java.util.Scanner; + +public class InputView { + + private static final String CHOOSE_FUNCTION_MAIN="## 원하는 기능을 선택하세요."; + private static final String STATION_START="## 출발역을 입력하세요."; + private static final String STATION_END="## 도착역을 입력하세요."; + + public String getStationStart(Scanner scanner){ + System.out.println(STATION_START); + return scanner.nextLine(); + } + public String getStationEnd(Scanner scanner){ + System.out.println(STATION_END); + return scanner.nextLine(); + } + public String getChooseFunctionMain(Scanner scanner){ + System.out.println(CHOOSE_FUNCTION_MAIN); + return scanner.nextLine(); + } +} From f612b0a062065cd83213926c8b9139f53eab7dad Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 13:32:08 +0900 Subject: [PATCH 03/15] =?UTF-8?q?feat:=20=EB=A9=94=EB=89=B4=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=EB=AC=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 2 +- src/main/java/subway/View/OutputView.java | 24 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/main/java/subway/View/OutputView.java diff --git a/docs/README.md b/docs/README.md index eaa5f45e4..6e42f5d34 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,4 +18,4 @@ - 메인화면 기능 선택 - 최단 거리 경로 선택 - 최소 시간 경로 선택 - + diff --git a/src/main/java/subway/View/OutputView.java b/src/main/java/subway/View/OutputView.java new file mode 100644 index 000000000..9ec87c1e6 --- /dev/null +++ b/src/main/java/subway/View/OutputView.java @@ -0,0 +1,24 @@ +package subway.View; + +public class OutputView { + private static final String MAIN_MENU_MAIN_DISPLAY="## 메인화면"; + private static final String MAIN_MENU_PATH_SEARCH="1. 경로 조회"; + private static final String MAIN_MENU_QUIT="Q. 종료"; + + private static final String PATH_MENU_PATH_STANDARD="## 경로 기준"; + private static final String PATH_MENU_SHORT_DISTANCE="1. 최단거리"; + private static final String PATH_MENU_SHORT_TIME="2. 최소 시간"; + private static final String PATH_MENU_BACK="B. 돌아가기"; + + public void setMainMenuMainDisplay(){ + System.out.println(MAIN_MENU_MAIN_DISPLAY); + System.out.println(MAIN_MENU_PATH_SEARCH); + System.out.println(MAIN_MENU_QUIT); + } + public void setPathMenuPathStandard(){ + System.out.println(PATH_MENU_PATH_STANDARD); + System.out.println(PATH_MENU_SHORT_DISTANCE); + System.out.println(PATH_MENU_SHORT_TIME); + System.out.println(PATH_MENU_BACK); + } +} From 134cdc30ab7d1c86c44341c1c70643b3f12a0864 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 13:35:48 +0900 Subject: [PATCH 04/15] =?UTF-8?q?docs:=20=EC=97=90=EB=9F=AC=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EA=B4=80=EB=A0=A8=20=EA=B8=B0=EB=8A=A5,=20Controll?= =?UTF-8?q?er(=20=EC=A1=B0=ED=9A=8C=EA=B2=BD=EB=A1=9C=20=EC=B6=9C=EB=A0=A5?= =?UTF-8?q?)=20=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 6e42f5d34..1c0b3e54f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,4 +18,11 @@ - 메인화면 기능 선택 - 최단 거리 경로 선택 - 최소 시간 경로 선택 - + - 조회 경로 출력 +### Exception + - 출발역과 도착역이 같으면 에러 처리 + - 출박역과 도착역이 이어지지 않았다면 에러 처리 + - 존재하지 않는 역 사용시 에러 처리 + - 기능 선택 시 입력 값이 메뉴 네임이 아닌경우 에러처리 + + \ No newline at end of file From 9b56eac9e302bef131d179bb4137b345ba78e7ab Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 13:47:21 +0900 Subject: [PATCH 05/15] =?UTF-8?q?feat:=20=EB=A9=94=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EA=B8=B0=EB=8A=A5=20=EC=84=A0=ED=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subway/Controller/MainController.java | 33 +++++++++++++++++++ src/main/java/subway/View/OutputView.java | 1 + 2 files changed, 34 insertions(+) create mode 100644 src/main/java/subway/Controller/MainController.java diff --git a/src/main/java/subway/Controller/MainController.java b/src/main/java/subway/Controller/MainController.java new file mode 100644 index 000000000..824def07a --- /dev/null +++ b/src/main/java/subway/Controller/MainController.java @@ -0,0 +1,33 @@ +package subway.Controller; + +import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode; +import subway.View.InputView; +import subway.View.OutputView; + +import java.util.Scanner; + +public class MainController { + Scanner scanner; + OutputView outputView=new OutputView(); + InputView inputView=new InputView(); + private static final String MAIN_CONTROLLER_MENU_QUIT="Q"; + private static final String MAIN_CONTROLLER_PATH_SEARCH="1"; + + public MainController(Scanner scanner){ + this.scanner=scanner; + startMainMenu(scanner); + } + public void startMainMenu(Scanner scanner) { + while(true) { + outputView.setPathMenuPathStandard(); + String tmpSaveMenuChoice = inputView.getChooseFunctionMain(scanner); + if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_MENU_QUIT)) { + break; + } + if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_PATH_SEARCH)) { + + continue; + } + } + } +} diff --git a/src/main/java/subway/View/OutputView.java b/src/main/java/subway/View/OutputView.java index 9ec87c1e6..491a138b2 100644 --- a/src/main/java/subway/View/OutputView.java +++ b/src/main/java/subway/View/OutputView.java @@ -16,6 +16,7 @@ public void setMainMenuMainDisplay(){ System.out.println(MAIN_MENU_QUIT); } public void setPathMenuPathStandard(){ + System.out.println(); System.out.println(PATH_MENU_PATH_STANDARD); System.out.println(PATH_MENU_SHORT_DISTANCE); System.out.println(PATH_MENU_SHORT_TIME); From b5aa7886fe4b95f896c47d7b6acbcdfb77476917 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 13:49:57 +0900 Subject: [PATCH 06/15] =?UTF-8?q?docs:=20=EA=B8=B0=EB=8A=A5(Controller)=20?= =?UTF-8?q?=20=EB=AA=A9=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 1 + src/main/java/subway/Controller/MainController.java | 2 +- src/main/java/subway/Controller/PathController.java | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/main/java/subway/Controller/PathController.java diff --git a/docs/README.md b/docs/README.md index 1c0b3e54f..a36fd092e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,6 +19,7 @@ - 최단 거리 경로 선택 - 최소 시간 경로 선택 - 조회 경로 출력 + - 경로 기준 화면 선택 ### Exception - 출발역과 도착역이 같으면 에러 처리 - 출박역과 도착역이 이어지지 않았다면 에러 처리 diff --git a/src/main/java/subway/Controller/MainController.java b/src/main/java/subway/Controller/MainController.java index 824def07a..67074c772 100644 --- a/src/main/java/subway/Controller/MainController.java +++ b/src/main/java/subway/Controller/MainController.java @@ -25,7 +25,7 @@ public void startMainMenu(Scanner scanner) { break; } if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_PATH_SEARCH)) { - + continue; } } diff --git a/src/main/java/subway/Controller/PathController.java b/src/main/java/subway/Controller/PathController.java new file mode 100644 index 000000000..3b4625168 --- /dev/null +++ b/src/main/java/subway/Controller/PathController.java @@ -0,0 +1,4 @@ +package subway.Controller; + +public class PathController { +} From 76d80c75be8d42afa6f1c69396e863ae8b945c29 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 14:00:09 +0900 Subject: [PATCH 07/15] =?UTF-8?q?feat:=20=EA=B2=BD=EB=A1=9C=20=EA=B8=B0?= =?UTF-8?q?=EC=A4=80=20=ED=99=94=EB=A9=B4=20=EC=84=A0=ED=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 1 + .../subway/Controller/MainController.java | 2 +- .../subway/Controller/PathController.java | 32 +++++++++++++++++++ src/main/java/subway/View/InputView.java | 2 +- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index a36fd092e..e774aa69b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -20,6 +20,7 @@ - 최소 시간 경로 선택 - 조회 경로 출력 - 경로 기준 화면 선택 + ### Exception - 출발역과 도착역이 같으면 에러 처리 - 출박역과 도착역이 이어지지 않았다면 에러 처리 diff --git a/src/main/java/subway/Controller/MainController.java b/src/main/java/subway/Controller/MainController.java index 67074c772..60f9d0d2a 100644 --- a/src/main/java/subway/Controller/MainController.java +++ b/src/main/java/subway/Controller/MainController.java @@ -20,7 +20,7 @@ public MainController(Scanner scanner){ public void startMainMenu(Scanner scanner) { while(true) { outputView.setPathMenuPathStandard(); - String tmpSaveMenuChoice = inputView.getChooseFunctionMain(scanner); + String tmpSaveMenuChoice = inputView.getChooseFunction(scanner); if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_MENU_QUIT)) { break; } diff --git a/src/main/java/subway/Controller/PathController.java b/src/main/java/subway/Controller/PathController.java index 3b4625168..e081240aa 100644 --- a/src/main/java/subway/Controller/PathController.java +++ b/src/main/java/subway/Controller/PathController.java @@ -1,4 +1,36 @@ package subway.Controller; +import subway.View.InputView; +import subway.View.OutputView; + +import java.util.Scanner; + public class PathController { + OutputView outputView=new OutputView(); + InputView inputView =new InputView(); + private static final String PATH_CONTROLLER_SHORT_DISTANCE="1"; + private static final String PATH_CONTROLLER_SHORT_TIME="2"; + private static final String PATH_CONTROLLER_BACK="B"; + + public void startPathMenu(Scanner scanner){ + outputView.setPathMenuPathStandard(); + String tmpSavePathMenuChoice=inputView.getChooseFunction(scanner); + if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_BACK)) { + return; + } + if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_DISTANCE)) { + return; + } + if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_TIME)) { + return; + } + startPathMenu(scanner); + } + public void setPathControllerShortDistance(){ + + } + public void setPathControllerShortTime(){ + + } + } diff --git a/src/main/java/subway/View/InputView.java b/src/main/java/subway/View/InputView.java index 92c4e2182..9a581f778 100644 --- a/src/main/java/subway/View/InputView.java +++ b/src/main/java/subway/View/InputView.java @@ -16,7 +16,7 @@ public String getStationEnd(Scanner scanner){ System.out.println(STATION_END); return scanner.nextLine(); } - public String getChooseFunctionMain(Scanner scanner){ + public String getChooseFunction(Scanner scanner){ System.out.println(CHOOSE_FUNCTION_MAIN); return scanner.nextLine(); } From fff28fdd73a68e868da283f6590bbf02bfa9350c Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 14:26:18 +0900 Subject: [PATCH 08/15] =?UTF-8?q?docs:=20Domain(=EC=97=AD=20,=EB=9D=BC?= =?UTF-8?q?=EC=9D=B8)=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 3 ++- src/main/java/subway/Application.java | 3 +++ .../subway/Controller/MainController.java | 11 ++++---- .../subway/Controller/PathController.java | 26 +++++++++---------- src/main/java/subway/View/InputView.java | 3 +++ 5 files changed, 27 insertions(+), 19 deletions(-) diff --git a/docs/README.md b/docs/README.md index e774aa69b..d0bfd229a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,11 +5,12 @@ ####역 - 거리 정보 저장 - 시간 정보 저장 + - 기본 셋팅 역 정보 저장 ####라인 - 라인 별 역 저장 - 최단 거리 계산 - 최소 시간 계산 - + - 기본 셋팅 라인 저장 ### View - InputView - OutputView diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index 39941188c..9f65b0b8c 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -1,11 +1,14 @@ package subway; +import subway.Controller.MainController; + import java.util.Scanner; public class Application { public static void main(String[] args) { final Scanner scanner = new Scanner(System.in); // TODO: 프로그램 구현 + new MainController(scanner); } } diff --git a/src/main/java/subway/Controller/MainController.java b/src/main/java/subway/Controller/MainController.java index 60f9d0d2a..c778e2ce7 100644 --- a/src/main/java/subway/Controller/MainController.java +++ b/src/main/java/subway/Controller/MainController.java @@ -1,17 +1,18 @@ package subway.Controller; -import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode; + import subway.View.InputView; import subway.View.OutputView; import java.util.Scanner; public class MainController { + private static final String MAIN_CONTROLLER_MENU_QUIT="Q"; + private static final String MAIN_CONTROLLER_PATH_SEARCH="1"; Scanner scanner; OutputView outputView=new OutputView(); InputView inputView=new InputView(); - private static final String MAIN_CONTROLLER_MENU_QUIT="Q"; - private static final String MAIN_CONTROLLER_PATH_SEARCH="1"; + PathController pathController=new PathController(); public MainController(Scanner scanner){ this.scanner=scanner; @@ -19,13 +20,13 @@ public MainController(Scanner scanner){ } public void startMainMenu(Scanner scanner) { while(true) { - outputView.setPathMenuPathStandard(); + outputView.setMainMenuMainDisplay(); String tmpSaveMenuChoice = inputView.getChooseFunction(scanner); if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_MENU_QUIT)) { break; } if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_PATH_SEARCH)) { - + pathController.startPathMenu(scanner); continue; } } diff --git a/src/main/java/subway/Controller/PathController.java b/src/main/java/subway/Controller/PathController.java index e081240aa..96b9f629a 100644 --- a/src/main/java/subway/Controller/PathController.java +++ b/src/main/java/subway/Controller/PathController.java @@ -12,25 +12,25 @@ public class PathController { private static final String PATH_CONTROLLER_SHORT_TIME="2"; private static final String PATH_CONTROLLER_BACK="B"; - public void startPathMenu(Scanner scanner){ - outputView.setPathMenuPathStandard(); - String tmpSavePathMenuChoice=inputView.getChooseFunction(scanner); + public void startPathMenu(Scanner scanner) { + outputView.setPathMenuPathStandard(); + String tmpSavePathMenuChoice = inputView.getChooseFunction(scanner); + pathMenuChoice(scanner,tmpSavePathMenuChoice); + } + public void pathMenuChoice(Scanner scanner,String tmpSavePathMenuChoice) { if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_BACK)) { - return; - } - if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_DISTANCE)) { - return; + return ; } if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_TIME)) { - return; + } - startPathMenu(scanner); - } - public void setPathControllerShortDistance(){ + if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_DISTANCE)) { + } } - public void setPathControllerShortTime(){ + public void setPathControllerShortDistance(Scanner scanner) { + inputView.getStationEnd(scanner); + inputView.getStationStart(scanner); } - } diff --git a/src/main/java/subway/View/InputView.java b/src/main/java/subway/View/InputView.java index 9a581f778..6b047fbe8 100644 --- a/src/main/java/subway/View/InputView.java +++ b/src/main/java/subway/View/InputView.java @@ -9,14 +9,17 @@ public class InputView { private static final String STATION_END="## 도착역을 입력하세요."; public String getStationStart(Scanner scanner){ + System.out.println(); System.out.println(STATION_START); return scanner.nextLine(); } public String getStationEnd(Scanner scanner){ + System.out.println(); System.out.println(STATION_END); return scanner.nextLine(); } public String getChooseFunction(Scanner scanner){ + System.out.println(); System.out.println(CHOOSE_FUNCTION_MAIN); return scanner.nextLine(); } From 0bcf426a8ee779aa0216ca97e406a575dd94e09a Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 15:17:54 +0900 Subject: [PATCH 09/15] =?UTF-8?q?feat:=20=EA=B8=B0=EB=B3=B8=20=EC=85=8B?= =?UTF-8?q?=ED=8C=85=20=EC=97=AD,=EB=9D=BC=EC=9D=B8=20=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subway/Controller/MainController.java | 33 +++++++++++++++++++ .../subway/Controller/PathController.java | 6 ++++ .../java/subway/domain/ComputeShortValue.java | 9 +++++ src/main/java/subway/domain/Line.java | 26 +++++++++++++-- .../java/subway/domain/LineRepository.java | 14 +++++++- 5 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 src/main/java/subway/domain/ComputeShortValue.java diff --git a/src/main/java/subway/Controller/MainController.java b/src/main/java/subway/Controller/MainController.java index c778e2ce7..545e3bccd 100644 --- a/src/main/java/subway/Controller/MainController.java +++ b/src/main/java/subway/Controller/MainController.java @@ -3,16 +3,25 @@ import subway.View.InputView; import subway.View.OutputView; +import subway.domain.LineRepository; +import subway.domain.Station; +import subway.domain.StationRepository; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Scanner; public class MainController { private static final String MAIN_CONTROLLER_MENU_QUIT="Q"; private static final String MAIN_CONTROLLER_PATH_SEARCH="1"; + private static final List station= Arrays.asList("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역"); + private static final List line=Arrays.asList("2호선","3호선","신분당선"); Scanner scanner; OutputView outputView=new OutputView(); InputView inputView=new InputView(); PathController pathController=new PathController(); + LineRepository lineRepository=new LineRepository(); public MainController(Scanner scanner){ this.scanner=scanner; @@ -31,4 +40,28 @@ public void startMainMenu(Scanner scanner) { } } } + public void initializeSubwayStation() { + for(int i=0;i time=Arrays.asList(3,2,5,1,8); + lineRepository.getLine(line.get(0)).setTime(Arrays.asList(time.get(0), time.get(0))); + lineRepository.getLine(line.get(1)).setTime(Arrays.asList(time.get(1), time.get(2),time.get(3))); + lineRepository.getLine(line.get(2)).setTime(Arrays.asList(time.get(4), time.get(0))); + + } + public void initializeDistance() { + List distance=Arrays.asList(2,3,6,10,1); + lineRepository.getLine(line.get(0)).setDistance(Arrays.asList(distance.get(0), distance.get(0))); + lineRepository.getLine(line.get(1)).setDistance(Arrays.asList(distance.get(1), distance.get(2),distance.get(4))); + lineRepository.getLine(line.get(2)).setDistance(Arrays.asList(distance.get(0), distance.get(3))); + } + } diff --git a/src/main/java/subway/Controller/PathController.java b/src/main/java/subway/Controller/PathController.java index 96b9f629a..048d186c9 100644 --- a/src/main/java/subway/Controller/PathController.java +++ b/src/main/java/subway/Controller/PathController.java @@ -33,4 +33,10 @@ public void setPathControllerShortDistance(Scanner scanner) { inputView.getStationStart(scanner); } + public void setPathControllerShortTime(Scanner scanner) { + inputView.getStationEnd(scanner); + inputView.getStationStart(scanner); + + } + } diff --git a/src/main/java/subway/domain/ComputeShortValue.java b/src/main/java/subway/domain/ComputeShortValue.java new file mode 100644 index 000000000..4c15450cd --- /dev/null +++ b/src/main/java/subway/domain/ComputeShortValue.java @@ -0,0 +1,9 @@ +package subway.domain; +import org.jgrapht.alg.shortestpath.DijkstraShortestPath; +import org.jgrapht.graph.DefaultWeightedEdge; +import org.jgrapht.graph.WeightedMultigraph; + +public class ComputeShortValue { + WeightedMultigraph graph = new WeightedMultigraph(DefaultWeightedEdge.class); + +} diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index f4d738d5a..244ab1bfe 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -1,8 +1,16 @@ package subway.domain; +import java.util.ArrayList; +import java.util.List; + + public class Line { private String name; - + private static final List stations = new ArrayList<>(); + private static final List distance = new ArrayList<>(); + private static final List time = new ArrayList<>(); + public Line() { + } public Line(String name) { this.name = name; } @@ -10,6 +18,20 @@ public Line(String name) { public String getName() { return name; } - + public void setStations(List tmpSaveStation) { + for(int i=0;i tmpSaveTime) { + for(int i=0;i tmpSaveDistance) { + for(int i=0;i< tmpSaveDistance.size();i++) { + distance.add(tmpSaveDistance.get(i)); + } + } // 추가 기능 구현 } diff --git a/src/main/java/subway/domain/LineRepository.java b/src/main/java/subway/domain/LineRepository.java index 2c4a723c9..802eec3d1 100644 --- a/src/main/java/subway/domain/LineRepository.java +++ b/src/main/java/subway/domain/LineRepository.java @@ -7,6 +7,7 @@ public class LineRepository { private static final List lines = new ArrayList<>(); + Line line=new Line(); public static List lines() { return Collections.unmodifiableList(lines); @@ -19,8 +20,19 @@ public static void addLine(Line line) { public static boolean deleteLineByName(String name) { return lines.removeIf(line -> Objects.equals(line.getName(), name)); } - + public Line getLine(String tmpSaveLine) { + for(Line line:lines) { + if(line.getName().equals(tmpSaveLine)) { + return line; + } + } + return null; + } public static void deleteAll() { lines.clear(); } + public void initializeLine(String tmpSaveLine,List tmpSaveStations){ + addLine(new Line(tmpSaveLine)); + line.setStations(tmpSaveStations); + } } From 87af0007b7e20d04d3291bb5e7a0c23eb6c75455 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 15:21:17 +0900 Subject: [PATCH 10/15] =?UTF-8?q?docs:=20Domain(=EC=97=AD)=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/README.md b/docs/README.md index d0bfd229a..270ffb5ad 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,13 +3,11 @@ ### Domain ####역 - - 거리 정보 저장 - - 시간 정보 저장 - 기본 셋팅 역 정보 저장 ####라인 - 라인 별 역 저장 - - 최단 거리 계산 - - 최소 시간 계산 + - 라인 별 시간 저장 + - 라인 별 거리 저장 - 기본 셋팅 라인 저장 ### View - InputView From f318d930b813f2f2155d8296b34d1fd41a8e7035 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 15:40:13 +0900 Subject: [PATCH 11/15] =?UTF-8?q?docs:=20Domain(=EB=9D=BC=EC=9D=B8)=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 2 ++ .../{domain => Controller}/ComputeShortValue.java | 8 +++++++- src/main/java/subway/domain/Line.java | 12 +++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) rename src/main/java/subway/{domain => Controller}/ComputeShortValue.java (64%) diff --git a/docs/README.md b/docs/README.md index 270ffb5ad..ec1dacf27 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,6 +9,8 @@ - 라인 별 시간 저장 - 라인 별 거리 저장 - 기본 셋팅 라인 저장 + - 역 간 거리 계산 + - 특정 역이 라인에 존재하는지에 대한 여부 확인 ### View - InputView - OutputView diff --git a/src/main/java/subway/domain/ComputeShortValue.java b/src/main/java/subway/Controller/ComputeShortValue.java similarity index 64% rename from src/main/java/subway/domain/ComputeShortValue.java rename to src/main/java/subway/Controller/ComputeShortValue.java index 4c15450cd..9c275f4f5 100644 --- a/src/main/java/subway/domain/ComputeShortValue.java +++ b/src/main/java/subway/Controller/ComputeShortValue.java @@ -1,9 +1,15 @@ -package subway.domain; +package subway.Controller; import org.jgrapht.alg.shortestpath.DijkstraShortestPath; import org.jgrapht.graph.DefaultWeightedEdge; import org.jgrapht.graph.WeightedMultigraph; +import subway.domain.Line; +import subway.domain.LineRepository; + +import java.util.List; + public class ComputeShortValue { + List allLine=LineRepository.lines(); WeightedMultigraph graph = new WeightedMultigraph(DefaultWeightedEdge.class); } diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index 244ab1bfe..0025ad008 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -14,6 +14,7 @@ public Line() { public Line(String name) { this.name = name; } + // 추가 기능 구현 public String getName() { return name; @@ -33,5 +34,14 @@ public void setDistance(List tmpSaveDistance) { distance.add(tmpSaveDistance.get(i)); } } - // 추가 기능 구현 + public List getLineStation(){ + return stations; + } + public List getLineDistance(){ + return distance; + } + public List getLineTime(){ + return time; + } + } From c8c0e8770b060964f4a8d4fecf8a586f256f19e7 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 16:06:22 +0900 Subject: [PATCH 12/15] =?UTF-8?q?feat:=20=EC=97=AD=20=EA=B0=84=20=EA=B1=B0?= =?UTF-8?q?=EB=A6=AC=20=EA=B3=84=EC=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 1 + .../subway/Controller/ComputeShortValue.java | 27 +++++++++++++++++++ src/main/java/subway/domain/Line.java | 22 ++++++++++++--- 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/docs/README.md b/docs/README.md index ec1dacf27..ab5e6b537 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,6 +11,7 @@ - 기본 셋팅 라인 저장 - 역 간 거리 계산 - 특정 역이 라인에 존재하는지에 대한 여부 확인 + ### View - InputView - OutputView diff --git a/src/main/java/subway/Controller/ComputeShortValue.java b/src/main/java/subway/Controller/ComputeShortValue.java index 9c275f4f5..84db5b17e 100644 --- a/src/main/java/subway/Controller/ComputeShortValue.java +++ b/src/main/java/subway/Controller/ComputeShortValue.java @@ -5,11 +5,38 @@ import subway.domain.Line; import subway.domain.LineRepository; +import subway.domain.Station; +import java.util.Arrays; import java.util.List; public class ComputeShortValue { List allLine=LineRepository.lines(); + List checkDuplicatedStation= Arrays.asList(); + WeightedMultigraph graph = new WeightedMultigraph(DefaultWeightedEdge.class); + public void setGraph() { + + } + public void setEdge() { + for(int i=0;i tmpSaveDistance) { distance.add(tmpSaveDistance.get(i)); } } - public List getLineStation(){ + public List getLineStation() { return stations; } - public List getLineDistance(){ + public List getLineDistance() { return distance; } - public List getLineTime(){ + public List getLineTime() { return time; } + public int getDistance(Station startStation,Station endStation) { + int startIndex=stations.indexOf(startStation); + int endIndex=stations.indexOf(endStation); + if(startIndex>endIndex) { + return computeDistance(endIndex,startIndex); + } + return computeDistance(startIndex,endIndex); + } + public int computeDistance(int startIndex,int endIndex) { + int totalDistance=0; + for(int i=startIndex;i Date: Sat, 19 Dec 2020 16:47:12 +0900 Subject: [PATCH 13/15] =?UTF-8?q?feat:=20=EC=97=AD=20=EA=B0=84=20=EC=B5=9C?= =?UTF-8?q?=EB=8B=A8=EA=B1=B0=EB=A6=AC=20=EA=B2=BD=EB=A1=9C=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subway/Controller/ComputeShortValue.java | 29 ++++++++++++++++--- .../subway/Controller/MainController.java | 4 +++ .../subway/Controller/PathController.java | 14 +++++---- src/main/java/subway/domain/Line.java | 6 +++- .../java/subway/domain/LineRepository.java | 4 ++- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/main/java/subway/Controller/ComputeShortValue.java b/src/main/java/subway/Controller/ComputeShortValue.java index 84db5b17e..aaa9a7aed 100644 --- a/src/main/java/subway/Controller/ComputeShortValue.java +++ b/src/main/java/subway/Controller/ComputeShortValue.java @@ -7,34 +7,55 @@ import subway.domain.LineRepository; import subway.domain.Station; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ComputeShortValue { - List allLine=LineRepository.lines(); - List checkDuplicatedStation= Arrays.asList(); + private static List allLine=LineRepository.lines(); + List checkDuplicatedStation=new ArrayList(); WeightedMultigraph graph = new WeightedMultigraph(DefaultWeightedEdge.class); public void setGraph() { + + setAllLine(); + System.out.println("1"); + setEdge(); + System.out.println("2"); + DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(graph); + List shortestPath = dijkstraShortestPath.getPath("교대역", "양재역").getVertexList(); + + for (String string : shortestPath) { + System.out.println(string); + } + } public void setEdge() { + System.out.println("setedge"); for(int i=0;i getLineDistance() { public List getLineTime() { return time; } + public int getDistance(Station startStation,Station endStation) { + int startIndex=stations.indexOf(startStation); int endIndex=stations.indexOf(endStation); if(startIndex>endIndex) { @@ -53,9 +55,11 @@ public int getDistance(Station startStation,Station endStation) { } public int computeDistance(int startIndex,int endIndex) { int totalDistance=0; - for(int i=startIndex;i lines() { return Collections.unmodifiableList(lines); } - + public static List getLines() { + return lines; + } public static void addLine(Line line) { lines.add(line); } From 033e2c13674a32ee7d9f049d2ae43baf4c1fa2c4 Mon Sep 17 00:00:00 2001 From: nodenode1 Date: Sat, 19 Dec 2020 16:58:29 +0900 Subject: [PATCH 14/15] =?UTF-8?q?feat:=20=EC=B5=9C=EC=86=8C=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EA=B2=BD=EB=A1=9C=20=EC=84=A0=ED=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subway/Controller/ComputeShortValue.java | 47 ++++++++++++++----- src/main/java/subway/domain/Line.java | 17 +++++++ 2 files changed, 51 insertions(+), 13 deletions(-) diff --git a/src/main/java/subway/Controller/ComputeShortValue.java b/src/main/java/subway/Controller/ComputeShortValue.java index aaa9a7aed..1fa580e34 100644 --- a/src/main/java/subway/Controller/ComputeShortValue.java +++ b/src/main/java/subway/Controller/ComputeShortValue.java @@ -14,16 +14,15 @@ public class ComputeShortValue { private static List allLine=LineRepository.lines(); List checkDuplicatedStation=new ArrayList(); + WeightedMultigraph distanceGraph = new WeightedMultigraph(DefaultWeightedEdge.class); + WeightedMultigraph timeGraph = new WeightedMultigraph(DefaultWeightedEdge.class); - WeightedMultigraph graph = new WeightedMultigraph(DefaultWeightedEdge.class); - public void setGraph() { + public void setDistanceGraph() { - setAllLine(); - System.out.println("1"); - setEdge(); - System.out.println("2"); - DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(graph); + setAllLine(distanceGraph); + setDistanceEdge(distanceGraph); + DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(distanceGraph); List shortestPath = dijkstraShortestPath.getPath("교대역", "양재역").getVertexList(); for (String string : shortestPath) { @@ -31,32 +30,54 @@ public void setGraph() { } } - public void setEdge() { + public void setTimeGraph() { + setAllLine(timeGraph); + setTimeEdge(timeGraph); + DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(distanceGraph); + List shortestPath = dijkstraShortestPath.getPath("교대역", "양재역").getVertexList(); + + for (String string : shortestPath) { + System.out.println(string); + } + + } + public void setDistanceEdge(WeightedMultigraph tmpGraph) { + System.out.println("setedge"); + for(int i=0;i tmpGraph) { System.out.println("setedge"); for(int i=0;i tmpGraph) { System.out.println("setaa"); for(int i=0;i tmpGraph) { if(!checkDuplicatedStation.contains(tmpSaveStation.getName())){ checkDuplicatedStation.add(tmpSaveStation.getName()); System.out.println("입력잘됩니다"+tmpSaveStation.getName()); - graph.addVertex(tmpSaveStation.getName()); + tmpGraph.addVertex(tmpSaveStation.getName()); } } diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index a8c294ddb..c44a3bacf 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -62,6 +62,23 @@ public int computeDistance(int startIndex,int endIndex) { System.out.println("sddsss"); return totalDistance; } + public int getTime(Station startStation,Station endStation) { + int startIndex=stations.indexOf(startStation); + int endIndex=stations.indexOf(endStation); + if(startIndex>endIndex) { + return computeTime(endIndex,startIndex); + } + return computeTime(startIndex,endIndex); + } + public int computeTime(int startIndex,int endIndex) { + int totaltime=0; + for(int i=startIndex;i Date: Sat, 19 Dec 2020 17:58:00 +0900 Subject: [PATCH 15/15] =?UTF-8?q?feat:=20=EB=85=B8=EC=84=A0=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subway/Controller/ComputeShortValue.java | 39 +++++++++---------- .../subway/Controller/MainController.java | 23 ++++++----- .../subway/Controller/PathController.java | 10 ++--- src/main/java/subway/View/OutputView.java | 9 +++++ src/main/java/subway/domain/Line.java | 25 +++++++++--- .../java/subway/domain/LineRepository.java | 8 +++- 6 files changed, 70 insertions(+), 44 deletions(-) diff --git a/src/main/java/subway/Controller/ComputeShortValue.java b/src/main/java/subway/Controller/ComputeShortValue.java index 1fa580e34..d5fca81f3 100644 --- a/src/main/java/subway/Controller/ComputeShortValue.java +++ b/src/main/java/subway/Controller/ComputeShortValue.java @@ -3,6 +3,7 @@ import org.jgrapht.graph.DefaultWeightedEdge; import org.jgrapht.graph.WeightedMultigraph; +import subway.View.OutputView; import subway.domain.Line; import subway.domain.LineRepository; import subway.domain.Station; @@ -14,59 +15,57 @@ public class ComputeShortValue { private static List allLine=LineRepository.lines(); List checkDuplicatedStation=new ArrayList(); + LineRepository lineRepository=new LineRepository(); WeightedMultigraph distanceGraph = new WeightedMultigraph(DefaultWeightedEdge.class); WeightedMultigraph timeGraph = new WeightedMultigraph(DefaultWeightedEdge.class); - public void setDistanceGraph() { + public void setDistanceGraph(String start,String end) { setAllLine(distanceGraph); setDistanceEdge(distanceGraph); DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(distanceGraph); - List shortestPath = dijkstraShortestPath.getPath("교대역", "양재역").getVertexList(); + List shortestPath = dijkstraShortestPath.getPath(start, end).getVertexList(); - for (String string : shortestPath) { - System.out.println(string); - } + OutputView outputView =new OutputView(); + outputView.printStation(shortestPath); } - public void setTimeGraph() { + public void setTimeGraph(String start,String end) { setAllLine(timeGraph); setTimeEdge(timeGraph); DijkstraShortestPath dijkstraShortestPath = new DijkstraShortestPath(distanceGraph); - List shortestPath = dijkstraShortestPath.getPath("교대역", "양재역").getVertexList(); - - for (String string : shortestPath) { - System.out.println(string); - } + List shortestPath = dijkstraShortestPath.getPath(start, end).getVertexList(); + OutputView outputView =new OutputView(); + outputView.printStation(shortestPath); } public void setDistanceEdge(WeightedMultigraph tmpGraph) { - System.out.println("setedge"); + for(int i=0;i tmpGraph) { - System.out.println("setedge"); + for(int i=0;i tmpGraph) { - System.out.println("setaa"); + for(int i=0;i tmpGraph) public void setCheckDuplicatedStation(Station tmpSaveStation,WeightedMultigraph tmpGraph) { if(!checkDuplicatedStation.contains(tmpSaveStation.getName())){ checkDuplicatedStation.add(tmpSaveStation.getName()); - System.out.println("입력잘됩니다"+tmpSaveStation.getName()); + tmpGraph.addVertex(tmpSaveStation.getName()); } } diff --git a/src/main/java/subway/Controller/MainController.java b/src/main/java/subway/Controller/MainController.java index a08af27c8..228204c0e 100644 --- a/src/main/java/subway/Controller/MainController.java +++ b/src/main/java/subway/Controller/MainController.java @@ -11,11 +11,12 @@ import java.util.Arrays; import java.util.List; import java.util.Scanner; +import subway.domain.Line; public class MainController { private static final String MAIN_CONTROLLER_MENU_QUIT="Q"; private static final String MAIN_CONTROLLER_PATH_SEARCH="1"; - private static final List station= Arrays.asList("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역"); + private static final List STATION= Arrays.asList("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역"); private static final List line=Arrays.asList("2호선","3호선","신분당선"); Scanner scanner; OutputView outputView=new OutputView(); @@ -25,14 +26,16 @@ public class MainController { public MainController(Scanner scanner){ this.scanner=scanner; + initializeSubwayLine(); + initializeSubwayStation(); + initializeDistance(); + initializeTime(); startMainMenu(scanner); + } public void startMainMenu(Scanner scanner) { while(true) { - initializeSubwayStation(); - initializeSubwayLine(); - initializeDistance(); - initializeTime(); + outputView.setMainMenuMainDisplay(); String tmpSaveMenuChoice = inputView.getChooseFunction(scanner); if (tmpSaveMenuChoice.equals(MAIN_CONTROLLER_MENU_QUIT)) { @@ -45,14 +48,14 @@ public void startMainMenu(Scanner scanner) { } } public void initializeSubwayStation() { - for(int i=0;i time=Arrays.asList(3,2,5,1,8); diff --git a/src/main/java/subway/Controller/PathController.java b/src/main/java/subway/Controller/PathController.java index 4180257c6..8f929dc20 100644 --- a/src/main/java/subway/Controller/PathController.java +++ b/src/main/java/subway/Controller/PathController.java @@ -24,21 +24,17 @@ public void pathMenuChoice(Scanner scanner,String tmpSavePathMenuChoice) { return ; } if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_TIME)) { - + setPathControllerShortTime(scanner); } if(tmpSavePathMenuChoice.equals(PATH_CONTROLLER_SHORT_DISTANCE)) { setPathControllerShortDistance(scanner); } } public void setPathControllerShortDistance(Scanner scanner) { - //.getStationEnd(scanner); - //inputView.getStationStart(scanner); - computeShortValue.setGraph(); + computeShortValue.setDistanceGraph(inputView.getStationStart(scanner),inputView.getStationEnd(scanner)); } public void setPathControllerShortTime(Scanner scanner) { - inputView.getStationEnd(scanner); - inputView.getStationStart(scanner); - + computeShortValue.setTimeGraph(inputView.getStationEnd(scanner),inputView.getStationStart(scanner)); } } diff --git a/src/main/java/subway/View/OutputView.java b/src/main/java/subway/View/OutputView.java index 491a138b2..3db60e924 100644 --- a/src/main/java/subway/View/OutputView.java +++ b/src/main/java/subway/View/OutputView.java @@ -1,5 +1,7 @@ package subway.View; +import java.util.List; + public class OutputView { private static final String MAIN_MENU_MAIN_DISPLAY="## 메인화면"; private static final String MAIN_MENU_PATH_SEARCH="1. 경로 조회"; @@ -10,6 +12,13 @@ public class OutputView { private static final String PATH_MENU_SHORT_TIME="2. 최소 시간"; private static final String PATH_MENU_BACK="B. 돌아가기"; + public void printStation(List tmpSave) { + + System.out.println("[INFO] ---"); + for(String string:tmpSave) { + System.out.println("[INFO] "+string); + } + } public void setMainMenuMainDisplay(){ System.out.println(MAIN_MENU_MAIN_DISPLAY); System.out.println(MAIN_MENU_PATH_SEARCH); diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index c44a3bacf..93deb52ab 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -7,6 +7,7 @@ public class Line { private String name; private static final List stations = new ArrayList<>(); + private static final List distance = new ArrayList<>(); private static final List time = new ArrayList<>(); public Line() { @@ -19,20 +20,27 @@ public Line(String name) { public String getName() { return name; } + public void setStations(List tmpSaveStation) { for(int i=0;i tmpSaveTime) { + System.out.println(name); for(int i=0;i tmpSaveDistance) { + for(int i=0;i< tmpSaveDistance.size();i++) { + + System.out.println(tmpSaveDistance.get(i)); distance.add(tmpSaveDistance.get(i)); } + System.out.println(distance.size()); + } public List getLineStation() { return stations; @@ -48,6 +56,8 @@ public int getDistance(Station startStation,Station endStation) { int startIndex=stations.indexOf(startStation); int endIndex=stations.indexOf(endStation); + + if(startIndex>endIndex) { return computeDistance(endIndex,startIndex); } @@ -56,10 +66,10 @@ public int getDistance(Station startStation,Station endStation) { public int computeDistance(int startIndex,int endIndex) { int totalDistance=0; for(int i=startIndex;iendIndex) { return computeTime(endIndex,startIndex); } + return computeTime(startIndex,endIndex); } public int computeTime(int startIndex,int endIndex) { int totaltime=0; for(int i=startIndex;i lines() { return Collections.unmodifiableList(lines); } + public static List getLines() { return lines; } @@ -23,7 +24,9 @@ public static boolean deleteLineByName(String name) { return lines.removeIf(line -> Objects.equals(line.getName(), name)); } public Line getLine(String tmpSaveLine) { + for(Line line:lines) { + if(line.getName().equals(tmpSaveLine)) { return line; } @@ -34,7 +37,10 @@ public static void deleteAll() { lines.clear(); } public void initializeLine(String tmpSaveLine,List tmpSaveStations){ + addLine(new Line(tmpSaveLine)); - line.setStations(tmpSaveStations); + + + new Line(tmpSaveLine).setStations(tmpSaveStations); } }