index = hash(key) // index는 저장위치
Member.java
package collection.hashmap;
public class Member {
private int memberId;
private String memberName;
public Member() {}
public Member(int memberId,String memberName) {
this.memberId=memberId;
this.memberName=memberName;
}
public int getMemberId() {
return memberId;
}
public void setMemberId(int memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String toString() {
return memberName+"회원님의 아이디는"+ memberId+"입니다.";
}
@Override
public int hashCode() {
return memberId;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member) {
Member member=(Member)obj;
return (this.memberId == member.memberId);
}
return false;
}
}
MemberHashMap.java
package collection.hashmap;
import java.util.HashMap;
import java.util.Iterator;
public class MemberHashMap {
private HashMap<Integer,Member> hashMap;
public MemberHashMap() {
hashMap=new HashMap<Integer, Member>();
}
//집어넣을때는 put, 꺼내쓸때는 get
//모든 키값을 가져올때는 keyset()의 Set반환
//모든 콜렉션을 가져올때는 collection해서 values반환
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("회원 번호가 없습니다.");
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();
}
}
MemberHashMapTest.java
package collection.hashmap;
public class MemberHashMapTest {
//HashSet의 결과를 출력할 때 중복되지 않은 값을 허용하게 하려면 hashcode와 equals를 재정의해야한다.
//Member클래스에서 재정의하지 않으면 중복된값이 출력됨
public static void main(String[] args) {
MemberHashMap manager=new MemberHashMap();
Member memberLee= new Member(100,"Lee");
Member memberKim= new Member(200,"Kim");
Member memberPark= new Member(300,"Park");
Member memberPark2= new Member(300,"Park");
manager.addMember(memberLee);
manager.addMember(memberKim);
manager.addMember(memberPark);
manager.addMember(memberPark2);
manager.showAllMember();
manager.removeMember(200);
manager.showAllMember();
}
}
Member.java
package collection.treemap;
public class Member {
private int memberId;
private String memberName;
public Member() {}
public Member(int memberId,String memberName) {
this.memberId=memberId;
this.memberName=memberName;
}
public int getMemberId() {
return memberId;
}
public void setMemberId(int memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String toString() {
return memberName+"회원님의 아이디는"+ memberId+"입니다.";
}
@Override
public int hashCode() {
return memberId;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member) {
Member member=(Member)obj;
return (this.memberId == member.memberId);
}
return false;
}
}
MemberTreeMap.java
package collection.treemap;
import java.util.Iterator;
import java.util.TreeMap;
public class MemberTreeMap {
private TreeMap<Integer,Member> treeMap;
public MemberTreeMap() {
treeMap=new TreeMap<Integer,Member>();
}
public void addMember(Member member) {
treeMap.put(member.getMemberId(),member);
}
public boolean removeMember(int memberId) {
if(treeMap.containsKey(memberId)) {
treeMap.remove(memberId);
return true;
}
System.out.println("회원 번호가 없습니다.");
return false;
}
public void showAllMember() {
Iterator<Integer> ir=treeMap.keySet().iterator();
while(ir.hasNext()) {
int key=ir.next();
Member member=treeMap.get(key);
System.out.println(member);
}
System.out.println();
}
}
MemberTreeMapTest.java
package collection.treemap;
public class MemberTreeMapTest {
//정렬의 잘 되는 이유는 MemberTreeMap의 키값이 Integer이기 때문임
//Integer에 이미 Comparable이 구현되어 있기 때문에 굳이 정렬을 구현하지 않아도됨
public static void main(String[] args) {
MemberTreeMap manager=new MemberTreeMap();
Member memberPark= new Member(300,"Park");
Member memberLee= new Member(100,"Lee");
Member memberKim= new Member(200,"Kim");
Member memberPark2= new Member(400,"Park");
manager.addMember(memberLee);
manager.addMember(memberKim);
manager.addMember(memberPark);
manager.addMember(memberPark2);
manager.showAllMember();
manager.removeMember(200);
manager.showAllMember();
}
}