[JAVA] Map 인터페이스 구현과 활용

WOOK JONG KIM·2022년 10월 14일
0

패캠_java&Spring

목록 보기
18/103
post-thumbnail

HashMap 클래스 활용

  • 가장 많이 사용되는 Map인터페이스 기반 클래스

  • key-value를 쌍으로 관리하는 메서드 구현

  • 검색을 위한 자료구조

  • key가 되는 객체는 중복될 수 있고 객체의 유일성 비교를 위한 equals() hashCode() 메서드 구현해야함

public class MememberHashMap{
	private HashMap<Integer, Member> hashMap;
    
    public MemberHashMap()
    {
    	hashMap = new HashMap<Integer, Member>();
    }
    
    public void addMember(Member member)
    {
    	hashMap.put(member.getMemberId, member);
    }
    
    public boolean removeMember(int memberId){
    	if(hashMap.containsKey(memberId)){
        	hashMap.remove(memberId);
            return true;
        }
        
        System.out.println(memberId + "가 존재하지 않습니다");
        return false;
    }
    
    public void showAllMember(){
    	// HashMap 자체로 Iterator 가지고 오는 방법 X, Key나 value중에 택해야함
        // 그냥 HashMap 프린트 하면 쌍으로 잘 나옴(toString)
    	Iterator<Integer> ir = HashMap.keySet().iterator();
        while(ir.hasNext()){
        	int key = ir.next();
            Member member = hashMap.get(key);
            System.out.println(member);
       }
       System.out.println();
   }
}
public class MemberHashMapTest{
	public static void main(String[] args){
    	MemberHashMap memberHashMap = new MemberHashMap();
        
        Member memberLee = new Member(1001, "이순신");
        Member memberKim = new Member(1002, "김유신");
        Member memberKang = new Member(1003, "강감찬");
        Member memberHong = new Member(1004, "홍길동");
        
        memberHashMap.addMember(memberLee);
        memberHashMap.addMember(memberKim);
        memberHashMap.addMember(memberKang);
        memberHashMap.addMember(memberHong);
        
        memberHashMap.showAllMember();
        memberHashMap.removeMember(1004);
        memberHashMap.showAllMember();
     }
 }
        

TreeMap 클래스

  • Map 인터페이스를 구현한 클래스이고 key에 대한 정렬을 구현할 수 있음
  • key가 되는 클래스에 Comparable이나 Comparator인터페이스를 구현함으로써 key-value 쌍의 자료를 key값 기준으로 정렬하여 관리 할 수 있음
profile
Journey for Backend Developer

0개의 댓글