IT/Java

자바 arraylist, iterator, scanner를 사용한 회원 추가, 삭제, 검색, 목록, 종료 구현

노마드오브 2018. 7. 30. 23:00

package test2;


import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Scanner;



class Person {

private String name;

private int age;

private String address;

public Person(String name, int age, String address) {

super();

this.name = name;

this.age = age;

this.address = address;

}

// getter & setter

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

// toString()

@Override

public String toString() {

return name + "\t" + age + "\t" + address;

}

} // Person class


class PersonManager {

private Scanner scanner = new Scanner(System.in);

private List<Person> personList = new ArrayList<Person>(); // 원본 데이터

private List<Person> searchList = new ArrayList<Person>(); // 검색 데이터

// start()

// 선택 >>  

// "1:추가  2:삭제  3:검색  4:목록  0:종료"

public void start() {

while (true) {

System.out.println("1:추가  2:삭제  3:검색  4:목록  0:종료");

System.out.print(">> ");

int num = scanner.nextInt();

switch (num) {

case 1: add(); break;

case 2: del(); break;

case 3: search(); break;

case 4: list(personList); break;

case 0: System.out.println("프로그램을 종료합니다."); return;

default: System.out.println("없는 명령입니다."); break;

}

} // while

} // start()

// 1번 add()  회원 추가.  리스트에 Person 객체 추가하기

// 이름을 입력하세요: 

// 나이를 입력하세요:

// 주소를 입력하세요: 

// Person객체생성 후 리스트에 추가

public void add() {

System.out.print("이름을 입력하세요: ");

String name = scanner.next();

System.out.print("나이를 입력하세요: ");

int age = scanner.nextInt();

System.out.print("주소를 입력하세요: ");

String addr = scanner.next();

// 생성자를 통한 값 주입

Person person = new Person(name, age, addr);

personList.add(person);

} // add()

// 2번 del()  회원 삭제.  리스트에 해당번째 Person객체 삭제

// 삭제할 이름 입력: 

public void del() {

System.out.println("삭제할 이름 입력: ");

String name = scanner.next();


// for (int i=0; i<personList.size(); i++) {

// Person p = personList.get(i);

//

// if (p.getName().equals(name)) {

// personList.remove(i);

// }

// }

for (Person p : personList) {

if(p.getName().equals(name)) {

personList.remove(p);

}

}


System.out.println("삭제되었습니다");

} // del()

// 3번 search()  회원 검색.  검색결과를 검색용리스트에 추가 후 출력

public void search() {

searchList.clear();  // 요소 다 지우기

System.out.println("검색할 이름 : ");

String name = scanner.next();


// 검색된 데이터(Person 객체)를 searchList에 복사

for (int i=0; i<personList.size(); i++) {

Person p = personList.get(i);

if (p.getName().indexOf(name) != -1) { // 검색어가 존재함

searchList.add(p);

}

if (searchList.size() > 0) {

// 검색 목록을 보여주기 

list(searchList);

} else {

System.out.println("검색결과가 없습니다.");

}

} // search()

// 4번 list()  회원목록 출력

public void list(List<Person> list) {

System.out.println("이름\t나이\t주소");

System.out.println("=========================");

for (Person p : list) {

System.out.println(p.getName() + "\t"

+ p.getAge() + "\t"

+ p.getAddress());

}

System.out.println();

// Iterator<Person> it = personList.iterator();

// while (it.hasNext()) {

// Person p = it.next();

// System.out.println(p);

// }

System.out.println();

} // list()

// 0번  프로그램 종료

}


public class Test10 {


public static void main(String[] args) {

// PersonManager pm = new PersonManager();

// pm.start();

new PersonManager().start();

} // main()의 끝


}