Java/패스트캠퍼스

Map 인터페이스 구현 클래스

hs_developer 2022. 6. 12. 14:34

HashMap 클래스 활용하기

 

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

 

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

 

-검색을 위한 자료 구조

 

-key를 이용해 값을 저장하고, key를 이용해 값을 꺼내오는 방식 - hash 알고리즘으로 구현 됨

 

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

 

 

 

{1001=Kim, 1002=Lee, 1003=Park, 1004=Hong}
@Getter
@Setter
public class Member {

	// 멤버 변수 선언
	private int memberId;
	private String memberName;
	
	// 생성자 초기화
	public Member(int memberId, String memberName)
	{
		this.memberId = memberId;
		this.memberName = memberName;
	}

	// 동일성 구현
	@Override
	public int hashCode() {
		return memberId;
	}

	@Override
	public boolean equals(Object obj) {

		if(obj instanceof Member)
		{
			Member m = (Member)obj;
			
			if(this.memberId == m.memberId)
				return true;

			else return false;
		}
		return false;
		
	}
	
}
import java.util.HashMap;
import java.util.Iterator;

public class MemberHashMap {

	// key: Integer, value: Member
	private HashMap<Integer, Member> hashMap;
	
	public MemberHashMap()
	{
		hashMap = new HashMap<>();
	}
	
	public void addMember(Member m)
	{
		hashMap.put(m.getMemberId(), m);
	}
	
	public boolean removeMember(int memberId)
	{
		if(hashMap.containsKey(memberId))
		{
			hashMap.remove(memberId);
		}
		System.out.println("no element");
		return false;
	}
	
	public void showAllMember()
	{
		Iterator<Integer> ir = hashMap.keySet().iterator();
		
		while(ir.hasNext())
		{
			int key = ir.next();
			Member m = hashMap.get(key);
			
			System.out.println(m);
		}
		
	}
}
import java.util.HashMap;

public class MemberHashMapTest {

	public static void main(String[] args) {
		
		// HashMap
		HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
		hashMap.put(1001, "Kim");
		hashMap.put(1002, "Lee");
		hashMap.put(1003, "Park");
		hashMap.put(1004, "Hong");
		
		System.out.println(hashMap);
		
	}
}