IT 개발노트
ArrayList예제 (연락처 저장 프로그램 만들기) 본문
문제 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | package sungju.Java.Test1; import java.util.Scanner; import java.util.ArrayList; public class Test1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 이름을 저장할 ArrayList name 생성 ArrayList name = new ArrayList(); // 번호를 저장할 ArrayList num 생성 ArrayList num = new ArrayList(); // 이름, 번호를 입력받을 변수 선언 String na, nu; // 종료했을때 while문을 탈출할 변수 선언 boolean bool = true; // 연락처 프로그램 반복실행 while(bool) { System.out.println("1.연락처 등록"); System.out.println("2.연락처 보기"); System.out.println("3.연락처 삭제"); System.out.println("4.모든 연락처 보기"); System.out.println("5.종료"); // 보기를 선택받음 int input = sc.nextInt(); switch(input) { case 1: System.out.println("등록할 이름을 입력하세요"); na = sc.next(); // 이름이 등록되어 있지 않다면 연락처 저장 // indexOf는 객체가 없다면 -1 있으면 그 위치를 반환 // -1이 반환된다는건 중복이 없다는 뜻이다. if(name.indexOf(na) == -1) { name.add(na); System.out.println("등록할 번호를 입력하세요"); nu = sc.next(); // 입력받은 번호를 ArrayList num에 추가 num.add(nu); System.out.println("등록된 이름은 : " + na + " / 번호는 : " + nu + "입니다."); // 이름이 등록되어 있다면 중복된 이름이 있다고 반환 } else { System.out.println("중복된 이름이 있습니다."); } break; case 2: System.out.println("누구의 연락처를 확인하시겠습니까?"); // 저장되어 있는 모든 이름을 확인 for(int i=0; i<name.size(); i++) { System.out.println("이름 : " + name.get(i)); } na = sc.next(); // 확인할 이름의 인덱스 번호 확인 // name.indexOf(na); // 저장되어 있는 값이 없으면 -1이 출력 if(name.indexOf(na) == -1) { System.out.println("목록에 없습니다."); } else { System.out.println(na + "의 번호는 " + num.get(name.indexOf(na))); } break; case 3: System.out.println("누구의 연락처를 삭제하시겠습니까?"); // 저장되어 있는 모든 이름을 String으로 변환하여 출력 for(int i=0; i<name.size(); i++) { na = (String)name.get(i); System.out.println(na); } System.out.println("삭제할 이름을 입력하세요"); na = sc.next(); // 입력받은 이름을 ArrayList name에서 삭제 System.out.println(name.remove(na)); break; case 4: System.out.println("저장되어 있는 연락처는"); // 저장되어 있는 연락처의 이름과 번호를 모두 출력 for(int i=0; i<name.size(); i++) { System.out.println("이름 : " + name.get(i) + " / 번호 : " + num.get(i)); } // 저장되어 있는 값이 없을때 목록이 없다, 연락처를 추가해라 문구 출력 if(name.size()==0) { System.out.println("목록이 없습니다."); System.out.println("연락처를 추가해주세요."); } break; case 5: // 종료하면 while문 탈출 System.out.println("종료하겠습니다."); bool = false; } } } } |
고민했던 점 : 연락처를 선택적으로 확인할 때 인덱스 번호가 아닌 이름을 입력 받아서 확인하고 싶은데 한번에 처리해주는 메서드가 없어서 어떻게 받아올지 고민을 하다 인덱스 번호를 받아와서 get메서드에 넣어주어 출력하는 방법을 생각해내어 해결하게 되었다.
'알고리즘 > JAVA' 카테고리의 다른 글
for문 예제 (입력한 수를 거꾸로 반환) (0) | 2019.02.14 |
---|---|
HashMap예제 (메뉴 등록, 메뉴별 가격보기, 수정, 삭제하기) (0) | 2019.02.13 |
2차원 배열 예제 (0) | 2019.02.11 |
2차원 배열 예제 (입력받은 값을 출력하기) (0) | 2019.02.11 |
배열 예제 (오름차순 정렬) (0) | 2019.02.11 |