프로그래밍/Java
Map
파니동
2019. 12. 20. 22:12
hashMap
hashMap은 해쉬알고리즘으로 구현한 인터페이스다.
key, value 로 쌍을 이루고 있으며, key값은 중복이 되면 안된다.
실무에서 가장 많이 사용하는 자료구조 중에 하나이다.
MemberHashMap
package collection.map.hashmap;
import java.util.HashMap;
import java.util.Iterator;
import collection.Member;
public class MemberHashMap {
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() {
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
package collection.map.hashmap;
import collection.Member;
public class MemberHashMapTest {
public static void main(String[] args) {
MemberHashMap memberHashMap = new MemberHashMap();
Member memberLee = new Member(1001, "이지원");
Member memberSon = new Member(1002, "손민국");
Member memberPark = new Member(1003, "박서훤");
Member memberHong = new Member(1004, "홍길동");
memberHashMap.addMember(memberLee);
memberHashMap.addMember(memberSon);
memberHashMap.addMember(memberPark);
memberHashMap.addMember(memberHong);
memberHashMap.showAllMember();
memberHashMap.removeMember(1004);
memberHashMap.showAllMember();
}
}
TreeMap
TreeMap은 저장된 키값을 기준으로 정렬을 해준다.
MemberTreeMap
package collection.map.treemap;
import java.util.Iterator;
import java.util.TreeMap;
import collection.Member;
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(memberId + " 가 존재하지 않습니다. ");
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
package collection.map.treemap;
import collection.Member;
public class MemberTreeMapTest {
public static void main(String[] args) {
MemberTreeMap memberTreeMap = new MemberTreeMap();
Member memberLee = new Member(1003, "이지원");
Member memberSon = new Member(1004, "손민국");
Member memberPark = new Member(1005, "박서훤");
Member memberHong = new Member(1002, "홍길동");
memberTreeMap.addMember(memberLee);
memberTreeMap.addMember(memberSon);
memberTreeMap.addMember(memberPark);
memberTreeMap.addMember(memberHong);
memberTreeMap.showAllMember();
memberTreeMap.removeMember(1004);
memberTreeMap.showAllMember();
}
}
- 키 값 Integer클래스는 내부적으로 Comparable 클래스를 재정의 하였기에 가능한 것이다.
출처: do it 자바프로그래밍