본문 바로가기
Collection/ArrayList

ArrayList 예제(1)

by pms93 2022. 7. 24.
package arrayLists;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.jar.Attributes.Name;

public class Quiz1 {

	public static void main(String[] args) {
		// 연락처 저장 프로그램 (2개의 ArrayList사용) 
		// 리스트(1) : 이름정보 
		// 리스트(2) : 연락처 정보
		// 1. 연락처 등록 : 이름, 전화번호 (전화번호는 중복허용 x) 
		// 2. 연락처 보기 : 이름과 전화번호 전부 출력 
		// 3. 연락처 삭제 : 전화번호를 입력받아서 있으면 삭제
		// 4. 모든 연락처 보기 : 등록되어 있는 목록 전부 출력 
		// 5. 종료

		Scanner sc = new Scanner(System.in);
		ArrayList<String> nameList = new ArrayList<>();
		ArrayList<String> phoneNumber = new ArrayList<>();
		String strPhoneNumber = "", nameTmp = "";
		Long cvtPhoneNumber;
		int sel, delSel;

		while (true) {
			try {
				System.out.print("1. 연락처 등록\n2. 연락처 보기\n3. 연락처 삭제\n4. 모든 연락처 보기\n5. 종료\n>>> ");
				sel = sc.nextInt();
			} catch (Exception e) {
				System.out.println("잘못된 입력입니다...");
				sc.nextLine();
				continue;
			}

			switch (sel) {
			case 1:
				System.out.print("이름을 입력하세요 : ");
				nameTmp = sc.next();

				while (true) {
					System.out.print("번호를 입력하세요 : ");
					strPhoneNumber = sc.next();
					try {
						cvtPhoneNumber = Long.parseLong(strPhoneNumber);
					} catch (Exception e) {
						System.out.println("잘못된 입력입니다. 숫자만 입력하세요...");
						sc.nextLine();
						continue;
					}
					break;
					// 숫자 외의 데이터가 입력되면 예외처리 후 다시 입력받도록 하고있다.
				}

				// 전화번호 중복시 데이터를 저장하지 않고 switch-case 탈출
				if (phoneNumber.contains(strPhoneNumber)) {
					System.out.println("이미 등록된 정보입니다.");
					break;
				}

				nameList.add(nameTmp);
				phoneNumber.add(strPhoneNumber);

				break;
			case 2:
				System.out.print("검색하실 전화번호를 입력하세요 : ");
				strPhoneNumber = sc.next();

				if (phoneNumber.contains(strPhoneNumber)) {
					int tmp = phoneNumber.indexOf(strPhoneNumber);
					System.out.printf("<< 검색 결과 >>\n%d. 이름 : %s\t번호 : %s\n\n", tmp + 1, nameList.get(tmp), phoneNumber.get(tmp));
				} else
					System.out.println("검색하신 결과의 정보는 존재하지 않습니다.");

				break;
			case 3:
				System.out.println("<< 등록된 정보 >>");

				if (nameList.isEmpty())
					break;

				for (int cnt = 0; cnt < nameList.size(); cnt++)
					System.out.printf("%d. 이름 : %s\t번호 : %s\n", cnt + 1, nameList.get(cnt), phoneNumber.get(cnt));

				System.out.print("삭제할 정보의 번호를 입력하세요 : ");
				delSel = sc.nextInt();

				nameList.remove(delSel - 1);
				phoneNumber.remove(delSel - 1);

				System.out.println("삭제가 완료되었습니다.");
				break;
			case 4:
				System.out.println("<< 등록된 정보 >>");
				for (int cnt = 0; cnt < nameList.size(); cnt++)
					System.out.printf("%d. 이름 : %s\t번호 : %s\n", cnt + 1, nameList.get(cnt), phoneNumber.get(cnt));
				break;
			case 5:
				System.out.println("프로그램을 종료합니다.");
				System.exit(0);
			default:
				System.out.println("메뉴 확인 후 다시 입력하세요...");
			}

		}

	}
}

'Collection > ArrayList' 카테고리의 다른 글

ArrayList 예제(2)  (0) 2022.07.25
ArrayList(2)  (0) 2022.07.22
ArrayList(1)  (0) 2022.07.22