import java.util.*;
public class SchoolManagerMap{
private HashMap<String, Person> map = new HashMap<String, Person>();
//추가 (key : id, value : Person객체)
public void addPerson(Person person) throws DuplicatedIDException{
boolean b = map.containsKey(person.getId());
if(b){
throw new DuplicatedIDException();
}
/* Person p = map.get(person.getId());
if(p!=null) throw new DuplicatedIDException();
*/
map.put(person.getId(), person);
}
//id로 조회
public Person findPerson(String id){
return map.get(id);
}
//삭제
public void deletePerson(String id) throws RecordNotFoundException{
//1번
boolean b = map.containsKey(id);
if(!b){ throw new RecordNotFoundException();}
map.remove(id);
/*
2번
Person p = map.remove(id);
if(p==null){
throw new RecordNotFoundException();
}
*/
}
//수정
public void updatePerson(Person person) throws RecordNotFoundException{
boolean b = map.containsKey(person.getId());
if(!b){ throw new RecordNotFoundException();}
map.put(person.getId(), person);
}
//전체 사람 출력
public void showAllPersons(){
Set<String>keys = map.keySet();
Iterator<String> itr = keys.iterator();
while(itr.hasNext()){
System.out.println(map.get(itr.next()));
}
}
//이름으로 조회
public ArrayList<Person> findPersonByName(String name){
ArrayList<Person> retList = new ArrayList<Person>();
Set<String>keys = map.keySet();
Iterator<String> itr = keys.iterator();
while(itr.hasNext()){
String id = itr.next();
Person p = map.get(id); //key인 id로 Person객체 조회
if(name.equals(p.getName())){ //이름이 같다면
retList.add(p); //return 할 ArrayList객체에 add
}
}
return retList;
}
}
import java.util.ArrayList;
public class TestSchool {
public static void main(String [] args){
// SchoolManagerList m = new SchoolManagerList();
SchoolManagerMap m = new SchoolManagerMap();
Teacher t = new Teacher("090101", "나선생", 40, "021231234","서울 영등포", "영어");
Teacher t1 = new Teacher("070101", "나선생", 40,"111231234", "서울 송파", "수학");
Teacher t2 = new Teacher("060101", "나선생3", 40, "021231234", "서울 잠실", "국어");
Student stu = new Student("010101", "나학생", 15, "027775555","서울 강동", "A");
Employee emp = new Employee("050505", "나직원", 45, "0321512233","인천", "학생부");
Employee emp2 = new Employee("060505", "나직원", 45, "0321512233","인천", "학생부");
try{
m.addPerson(t);
m.addPerson(t1);
m.addPerson(t2);
m.addPerson(stu);
m.addPerson(emp);//추가
m.addPerson(emp2);
Person p = m.findPerson("010101");
if(p==null){
System.out.println("찾는 사람이 없습니다.");
}else{
System.out.println("조회결과 : "+p.toString());
}
m.showAllPersons();
m.deletePerson("010101");
System.out.println("----------010101 : 삭제후----------");
m.showAllPersons();
System.out.println("------------수정후-------------");
Student modStu = new Student("050505", "나직원2", 46, "광주", "00000000", "서무부");
m.updatePerson(modStu);
m.showAllPersons();
System.out.println("---------------이름으로 조회----------------");
ArrayList<Person> list1 = m.findPersonByName("나선생");
for(Person pp:list1){
System.out.println(pp);
}
}catch(DuplicatedIDException de){
System.out.println(de.getMessage());
}catch(RecordNotFoundException re){
System.out.println(re.getMessage());
}
}
}
Output |
조회결과 : id=010101, name=나학생, age=15, tel=027775555, address=서울 강동, grade=A id=090101, name=나선생, age=40, tel=021231234, address=서울 영등포, subject=영어
id=070101, name=나선생, age=40, tel=111231234, address=서울 송파, subject=수학 id=010101, name=나학생, age=15, tel=027775555, address=서울 강동, grade=A id=060101, name=나선생3, age=40, tel=021231234, address=서울 잠실, subject=국어 id=050505, name=나직원, age=45, tel=0321512233, address=인천, department=학생부 id=060505, name=나직원, age=45, tel=0321512233, address=인천, department=학생부 ----------010101 : 삭제후---------- id=090101, name=나선생, age=40, tel=021231234, address=서울 영등포, subject=영어
id=070101, name=나선생, age=40, tel=111231234, address=서울 송파, subject=수학 id=060101, name=나선생3, age=40, tel=021231234, address=서울 잠실, subject=국어 id=050505, name=나직원, age=45, tel=0321512233, address=인천, department=학생부 id=060505, name=나직원, age=45, tel=0321512233, address=인천, department=학생부 ------------수정후------------- id=090101, name=나선생, age=40, tel=021231234, address=서울 영등포, subject=영어
id=070101, name=나선생, age=40, tel=111231234, address=서울 송파, subject=수학 id=060101, name=나선생3, age=40, tel=021231234, address=서울 잠실, subject=국어 id=050505, name=나직원2, age=46, tel=광주, address=00000000, grade=서무부 id=060505, name=나직원, age=45, tel=0321512233, address=인천, department=학생부 ---------------이름으로 조회---------------- id=090101, name=나선생, age=40, tel=021231234, address=서울 영등포, subject=영어
id=070101, name=나선생, age=40, tel=111231234, address=서울 송파, subject=수학 |
'Java' 카테고리의 다른 글
PrintWriter Ex. Source (0) | 2010.04.01 |
---|---|
PrintWriter Ex. Source (0) | 2010.04.01 |
Data In/OutPut StreamTest (0) | 2010.03.31 |
File IO using Buffered IO Stream (0) | 2010.03.31 |
File I/O Ex. Source(2) (0) | 2010.03.31 |
File I/O Ex. Source(1) (0) | 2010.03.31 |
HashMap Ex. Source(2) (0) | 2010.03.30 |
HashMap Ex. Source (0) | 2010.03.30 |
Collection FrameWork 中 MAP Ex. source (0) | 2010.03.30 |
Java 1주차 간단 정리 (0) | 2010.03.11 |