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("메뉴 확인 후 다시 입력하세요...");
}
}
}
}