HashMap 클래스 활용하기
- Map 인터페이스를 구현한 클래스
- 가장 많이 사용되는 Map 인터페이스 기반 클래스
- key - value를 쌍으로 관하는 메서드를 구현
- 검색을 위한 자료구조
- key를 이용하여 값을 저장하고 key를 이용하여 값을 꺼내오는 방식
- key가 되는 객체는 중복될 수 없고 객체의 유일성을 비교를 위한 equals()와 hashCode() 메서드를 구현
member.java
public class Member {
private int memeberId;
private String memberName;
public Member(int memeberId, String memberName) {
this.memeberId = memeberId;
this.memberName = memberName;
}
public final int getMemeberId() {
return memeberId;
}
public final void setMemeberId(int memeberId) {
this.memeberId = memeberId;
}
public final String getMemberName() {
return memberName;
}
public final void setMemberName(String memberName) {
this.memberName = memberName;
}
@Override
public String toString() {
return memberName + " 회원님의 아이디는 " + memeberId + "입니다";
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member) {
Member member = (Member)obj;
if(this.memeberId == member.memeberId) {
return true;
}else {
return false;
}
}
return false;
}
@Override
public int hashCode() {
return memeberId;
}
}
MemberHashMap.java
import java.util.HashMap;
import java.util.Iterator;
public class MemberHashMap {
private HashMap<Integer, Member> hashMap;
public MemberHashMap() {
hashMap = new HashMap<Integer, Member>();
}
public void addMember(Member member) {
hashMap.put(member.getMemeberId(), member);
}
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 member = hashMap.get(key);
System.out.println(member);
}
}
}
MemberHashMapTest.java
import java.util.HashMap;
public class MemberHashMapTest {
public static void main(String[] args) {
MemberHashMap memberHashMap= new MemberHashMap();
Member memberLee = new Member(1001, "Lee");
Member memberHong = new Member(1004, "Hong");
Member memberKim = new Member(1002, "Kim");
Member memberKang = new Member(1003, "Kang");
memberHashMap.addMember(memberLee);
memberHashMap.addMember(memberKim);
memberHashMap.addMember(memberKang);
memberHashMap.addMember(memberHong);
memberHashMap.showAllMember();
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);
}
}'JAVA' 카테고리의 다른 글
| [JAVA] 람다식 (1) | 2023.09.10 |
|---|---|
| [JAVA] 여러 내부 클래스의 정의와 유형 (1) | 2023.09.04 |
| [JAVA] 중복되지 않게 자료를 관리하는 Set 인터페이스를 구현한 클래스와 그 활용 (0) | 2023.08.28 |
| [JAVA] Collection 요소를 순회하는 Iterator (1) | 2023.08.28 |
| [JAVA] 순차적으로 자료를 관리하는 List 인터페이스를 구현한 클래스와 그 활용 (1) | 2023.08.28 |