package ch05_mapQuiz;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

import ch03_setQuiz.PersonManager;

public class PersonMain {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		PersonManager manager = new PersonManager();
		Map<String,String> map = new HashMap<>();
		
		boolean run = true; // 실행 : true, 종료 : false
		while(run) {
			System.out.println("---  전화번호 관리 ---");
			System.out.print("1.추가  2.삭제  3.목록  4.수정\\n>> ");
			int select = scanner.nextInt();
			switch(select) {
			case 1: // 추가 : 이름으로 관리
				System.out.println("--- 전화번호 추가 ---");
				System.out.print("이름 입력 > ");
				String new_name = scanner.next();
				if(map.containsKey(new_name)) {
					System.out.println("이미 있는 이름입니다...");
				}
				else {
					System.out.print("전화번호 입력 > ");
					String new_phonenumber = scanner.next();
					map.put(new_name,new_phonenumber);
				}
				break;
			case 2: // 삭제 : 이름으로 삭제
				System.out.println("--- 전화번호 삭제 ---");
				System.out.print("삭제할 이름 입력 > ");
				String delete_id = scanner.next();
				Set<String> delete_set = map.keySet();
				if(map.containsKey(delete_id)) {
					System.out.println(delete_id + " - " + map.get(delete_id) +" 삭제 완료");
					map.remove(delete_id);
				} else {
					System.out.println("잘못된 이름이거나, 없는 이름입니다..");
				}
				break;
			case 3: // 목록
				System.out.println("--- 전화번호 목록 ---");
				Set<String> list_set = map.keySet();
				Iterator<String> list_it = list_set.iterator();
				while(list_it.hasNext()) {
					String list_key = list_it.next();
					String list_value = map.get(list_key);
					System.out.println(list_key + " - " + list_value);
				}
				break;
			case 4: // 수정 : 이름으로 전화번호 수정
				System.out.println("--- 전화번호 수정 ---");
				System.out.print("수정할 이름 입력 > ");
				String modi_id = scanner.next();
				Set<String> modi_set = map.keySet();
				if(modi_set.contains(modi_id)) {
					System.out.print("현재전화번호 : " + map.get(modi_id) + '\\n');
					System.out.print("수정할 전화번호 입력 > ");
					String modi_phonenumber = scanner.next();
					map.put(modi_id, modi_phonenumber);
				} else {
					System.out.println("잘못된 이름이거나, 없는 이름입니다..");
				}

				break;
			case 0: // 종료
				System.out.println("-- program end --");
				System.exit(0);
				break;
			default:
				System.out.println("선택 오류~");;
			}
			System.out.println();
		}
		
	}
	
}