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()의 끝
}
'IT > Java' 카테고리의 다른 글
자바 map, hashmap (0) | 2018.07.31 |
---|---|
자바 list, vector, generec (0) | 2018.07.31 |
자바 생성자를 통한 의존관계 주입 DI, 메소드를 통한 의존관계 주입 DI (0) | 2018.07.30 |
자바 arraylist generic scanner Iterator, 이름 5개 입력받아 출력하기 (0) | 2018.07.29 |
자바 List - ArrayList, 제네릭(generic) 타입, Iterator (0) | 2018.07.25 |