요구 사항: 사용자 입력 값 (”create/update/find/delete ${key} ${value}”) 을 받아 hashMap에 CRUD를 구현한다.
- 한 클래스에 모두 작성 시
import java.util.HashMap;
import java.util.Scanner;
public class KdtJavaStudyApplication {
public static HashMap<String, String>UserList= new HashMap<>();
// static으로 선언해줘야 인스턴스화가 되면서 각 메소드에서 접근이 가능
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true){
String[] input = scanner.nextLine().split("\\s");
//사용자 입력을 계속 받기 위해 while문을 사용한다
if(input.length == 3){
switch (input[0]){
case "create":
System.out.println("Run Create");
Create(input[1], input[2]);
break;
case "update":
System.out.println("Run Update");
Update(input[1], input[2]);
break;
default:
System.out.println("End Program!");
return;
}
}
else if(input.length == 2){
switch (input[0]){
case "find":
System.out.println("Run Find");
System.out.println(UserList.get(input[1]));
break;
case "delete":
System.out.println("Run Delete");
Delete(input[1]);
break;
default:
System.out.println("End Program!");
return;
}
}else{
System.out.println(input.length);
System.out.println("----404 NOT FOUND----");
return;
}
}
}
public static void Create(String key, String value){
UserList.put(key, value);
}
public static void Update(String key, String value){
UserList.put(key, value);
//put()은 key가 없으면 생성하고, key가 있으면 값을 변경, replace()는 key가 없을 시 null 반환
}
public static void Delete(String key){
UserList.remove(key);
}
}
- CRUD 로직과 실행 로직을 다른 클래스로 나눌 시
//KdtJavaStudyApplication.java
import java.util.HashMap;
import java.util.Scanner;
public class KdtJavaStudyApplication {
public static void main(String[] args) {
HashMap<String, String> UserList = new HashMap<>();
//여기선 hashMap을 다른 클래스에 인스턴스로 넘겨줄 것이기 때문에 main 메소드 안에 작성
UserDataManager userDataManager = new UserDataManager(UserList);
//userDataManager 클래스를 자료형으로 사용해 userDataManager 인스턴스를 생성한다.
//이때 생성자 UserDataManager에 해시맵 인스턴스를 넘겨준다.
Scanner scanner = new Scanner(System.in);
while (true){
String[] input = scanner.nextLine().split("\\s");
if(input.length == 3){
switch (input[0]){
case "create":
System.out.println("Run Create");
userDataManager.Create(input[1], input[2]);
//Create 메소드는 userDataManager 객체에 종속되어 있기 때문에 이렇게 호출
break;
case "update":
System.out.println("Run Update");
userDataManager.Update(input[1], input[2]);
break;
default:
System.out.println("End Program!");
return;
}
}
else if(input.length == 2){
switch (input[0]){
case "find":
System.out.println("Run Find");
System.out.println(UserList.get(input[1]));
break;
case "delete":
System.out.println("Run Delete");
userDataManager.Delete(input[1]);
break;
default:
System.out.println("End Program!");
return;
}
}else{
System.out.println(input.length);
System.out.println("----404 NOT FOUND----");
return;
}
}
}
}
//UserDataManager.java
import java.util.HashMap;
public class UserDataManager {
private final HashMap<String, String> UserData;
//final은 변경하면 안 되는 값을 선언할 때 사용. javascript의 const 같은 용도
public UserDataManager(HashMap<String, String> userData){
this.UserData = userData;
//인자로 들어온 인스턴스를 현재 클래스의 userData 해시맵에 할당
}
public void Create(String key, String value){
UserData.put(key, value);
}
public void Update(String key, String value){
UserData.put(key, value);
}
public void Delete(String key){
UserData.remove(key);
}
}
'Java' 카테고리의 다른 글
Java로 구구단 만들기 (변형) (0) | 2022.02.08 |
---|