본문 바로가기

Java

School_Collection_Ex

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