package ch03_setQuiz;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

import ch02_set.Person;

/*
 * Person class 객체를 Set collection 으로 관리하는 PersonManager class 를 구현하세요
 * - 구현 방식은 ch01_list 팩키지의 MemberManager class 와 동일합니다
 */

public class PersonManager {
   private Scanner scanner = new Scanner(System.in);
   private Set<Person> set = new HashSet<>();
   
   public PersonManager() {}
   
   // 메뉴
   public void menu() {
      
      while(true) {
         System.out.print("1.추가  2.삭제  3.목록 >> ");
         int select = scanner.nextInt();
         
         switch(select) {
         case 1: // 추가
            insert();  break;
         case 2: // 삭제
            delete();  break;
         case 3: // 목록
            list();  break;
         case 0: // 종료
            end();
         default:
            System.out.println("선택 오류~");
         }
         System.out.println();
      }
      
   } // menu()
   
   // 전화번호 추가
   public void insert() {
	   System.out.println("--- 전화번호 추가 ---");
	   System.out.print("이름     입력 > ");
	   String addname = scanner.next();
	   System.out.print("전화번호 입력 > ");
	   String addphonenumber = scanner.next();
	   set.add(new Person(addname,addphonenumber));
   }// insert()
   
   // 전화번호 삭제
   public void delete() {
	   System.out.println("--- 전화번호 삭제 ---");
	   System.out.print("삭제할 이름 입력 > ");
	   String dname = scanner.next();
	   Person delete_data = findName(dname);
	   if (delete_data != null) {
		   set.remove(delete_data);
		   System.out.println(delete_data + "삭제되었습니다.");
	   } else {
		   System.out.println("삭제할 이름이 잘못되었거나, 없는 전화번호입니다.");
	   }
   } // delete()
   
   // findName
   public Person findName(String dname) {
	   for(Person person : set) {
		   if(person.getname().equals(dname)) 
			   return person;
	   }
	   return null;
   } // findName
   
   // 전화번호 목록
   public void list() {
	   System.out.println("--- 전화번호 목록 ---");
	   for(Person pe : set) {
		   System.out.print(pe + " ");
	   }

   } // list()
   
   // 종료
   public void end() {
      System.out.println("-- program end --");
      System.exit(0);
   }
   
}
--------------------------------------------------------------------------------

// PersonMain
package ch03_setQuiz;

public class PersonMain {
	
	public static void main(String[] args) {
		PersonManager person = new PersonManager();
		person.menu();
	}
}