티스토리 뷰
내가 작성한 정답코드 공개
package Test;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
class AA{
String name; //이름
String phone; //핸드폰 번호
String adr; //주소
int age; //나이
AA(String name,String phone,String adr,int age){
this.name = name;
this.phone = phone;
this.adr = adr;
this.age = age;
}
public void print() {
System.out.println("이름 : " + name + ", 전화번호 : "+phone + ", 주소 : " + adr + ", 나이 : " + age);
}
}
public class 연습 {
public static void main(String[] args) {
//ArrayList를 이용한 전화번호부 만들기
//1. 추가 2. 삭제 3. 전체출력 4. 이름검색 5. 종료
Scanner sc = new Scanner(System.in);
ArrayList<AA> list = new ArrayList<AA>();
System.out.println("-- ArrayList를 이용한 전화번호부 --");
while(true) {
System.out.print("1. 추가 2. 삭제 3. 전체출력 4. 이름검색 5. 종료 : ");
int num = sc.nextInt(); //선택 !
if(num == 1) {
System.out.print("이름 : ");
String name = sc.next();
System.out.print("전화번호 : ");
String phone = sc.next();
System.out.print("주소 : ");
String adr = sc.next();
System.out.print("나이 : ");
int age = sc.nextInt();
list.add(new AA(name,phone,adr,age)); //추가
System.out.println("추가가 완료되었습니다.");
}else if (num == 2){
System.out.print("이름 입력 : ");
String name = sc.next();
int count = 0;
for(int i=0;i<list.size();i++) {
if(name.equals(list.get(i).name)) {
System.out.println("해당 데이터를 삭제합니다.");
list.remove(i);
count ++;
break;
}
}
if(count == 0) {
System.out.println("해당 데이터를 찾지 못했습니다.");
}
}else if (num == 3){
for(int i=0;i<list.size();i++) {
list.get(i).print(); //전체출력
}
}else if (num == 4){
System.out.print("이름 검색 : ");
String name = sc.next();
int count = 0;
for(int i=0;i<list.size();i++) {
if(name.equals(list.get(i).name)) {
list.get(i).print();
count ++;
break;
}
}
if(count == 0) {
System.out.println("해당 데이터를 찾지 못했습니다.");
}
}else if (num == 5){
System.out.println("프로그램 종료");
break;
}else{
System.out.println("없는 선택란입니다.");
}
}
}
}
Arraylist에 효율적으로 값을 넣기 위해 AA라는 클래스를 만들었다.
이곳에는 각각 이름 전화번호 주소 나이의 변수가 있고 기본생성자로 받게끔 하였다.
그리고 그 이후로는 간단하다. 사용자가 입력한 번호에 맞는 알맞는 기능을 제공하면 된다.
ex) 이름검색의 경우 사용자가 이름을 입력하면 해당 이름과 일치하는 Array의 인덱스를 for문과 equals를 통해 알아내어 그것을 출력해준다.
혹은 삭제하고자 한다면 해당 인덱스를 알아내어 remove해주면 된다.
* 알아야할 함수 *
- add : 값을 추가함
- get : 값을 가져옴
- set : 값을 바꿈
- remove : 값을 삭제함
- size : list 전체길이를 알아냄
'프로그래밍 언어 복습 > JAVA' 카테고리의 다른 글
#62 JAVA 몬티홀의 역설(or 딜레마) 코딩해보기 (0) | 2022.07.16 |
---|---|
#61 JAVA 전화번호부 문제 (0) | 2022.06.23 |
#59 JAVA 접근제한자 굵짧 설명 (0) | 2022.06.21 |
#58 JAVA 추상화 개념과 그 외 다른 개념들 복습해보기 (0) | 2022.06.20 |
#57 JAVA 업캐스팅과 다운캐스팅 (0) | 2022.06.20 |
댓글