Java & Kotlin

[Java 자료구조] Map 인터페이스 활용

Sue 2022. 2. 13. 09:55

HashMap 클래스

  • 가장 많이 사용되는 Map 인터페이스 기반 클래스
  • 검색을 위한 자료구조
  • key-value를 쌍으로 관리하는 메서드를 구현
  • key를 이용하여 값을 저장하고 값을 꺼내오는 방식 (hash 알고리즘)
  • key가 되는 객체는 중복될 수 없고 유일성을 비교하기 위한 equals(), hashCode() 메서드 재정의 필요

 

HashMap 메서드

  • V put(K,V) : 요소 추가
  • V get(K) : K를 key로 갖는 value 가져옴
  • Set<K> keySet() : 모든 key 출력
  • Collection<V> values() : 모든 value 출력
  • boolean containsKey(Object key) : 해당 key가 있으면 true 반환
  • boolean containsValue(Object value) : 해당 value가 있으면 true 반환

 

이전 코드

 

[Java 자료구조] Set 인터페이스 활용

HashSet 클래스 가장 많이 사용되는 Set 인터페이스 기반 클래 멤버의 중복 여부를 체크하기 위해 인스턴스의 동일성을 체크해야 함 동일성을 구현하기 위해 HashSet이 관리할 클래스의 equals(), hashCod

suaring.tistory.com

 

MemberHashMap.java
package ch15;

import java.util.HashMap;
import java.util.Iterator;

public class MemberHashMap {
	
	private HashMap<Integer,Member> hashMap;
	
	public MemberHashMap() {
		hashMap = new HashMap<>();
	}
	
	public void addMember(Member member) {
		hashMap.put(member.getMemberId(), member);
	}
	
	public boolean removeMember(int memberId) {
		if(hashMap.containsKey(memberId)) {
			hashMap.remove(memberId);
			return true;
		}
		return false;
	}
	
	public void showAllMember() {

		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(hashMap);
	}
	
}

 

TreeMap

  • TreeSet + HashMap의 기능
  • key가 되는 클래스에 Comparable 또는 Comparator를 구현하여 key값을 기준으로 정렬하여 관리할 수 있음