kye-value pair의 객체를 관리하는데 필요한 메서드가 정의 됨
key는 중복 될 수 없음
검색을 위한 자료 구조
key를 이용하여 값을 저장하거나 검색, 삭제 할때 사용하면 편리함
index = hash(key)
key가 되는 객체는 객체의 유일성함의 여부를 알기 위해 equals()와 hashCode()메서드를 재정의 함
HashMap 클래스를 가장 많이 사용한다
Map 인터페이스를 구현한 클래스 중 가장 일반적으로 사용한는 클래스
HashTable 클래스는 자바2 부터 제공된 클래스로 Vector 처럼 동기화를 제공 한다
pair자료를 쉽고 빠르게 관리할 수 있다
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 + "입니다.";
    }
}
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.getMemberId(), member);
    }
    public boolean removeMember(int memberId){
        if (hashMap.containsKey(memberId)){
            hashMap.remove(memberId); // key 값으로 지울수 있음
            return true;
        }
        System.out.println("회원 번호가 없습니다");
        return false;
    }
    public void showAllMember(){
        Iterator<Integer> ir = hashMap.keySet().iterator(); //모든 key를 set으로 반환해줌
//          hashMap.values().iterator(); // 모든 val을 colletion으로 반환해줌
         while(ir.hasNext()){
             int key = ir.next();
             Member member = hashMap.get(key);
             System.out.println(member);
         }
        System.out.println("");
    }
}
public class MemberHashMapTest {
    public static void main(String[] args) {
        MemberHashMap manager = new MemberHashMap();
        Member memberLee = new Member(200, "Lee");
        Member memberKim = new Member(300, "Kim");
        Member memberPark = new Member(100, "Park");
        Member memberPark2 = new Member(100, "Park");
        manager.addMember(memberLee);
        manager.addMember(memberKim);
        manager.addMember(memberPark);
        manager.addMember(memberPark2);// 키값이 Integer로 되어있기 때문에 중복값무시
        manager.showAllMember();
        //Park회원님의 아이디는 100입니다.
        //Lee회원님의 아이디는 200입니다.
        //Kim회원님의 아이디는 300입니다.
        manager.removeMember(200);
        manager.showAllMember();
        //Park회원님의 아이디는 100입니다.
        //Kim회원님의 아이디는 300입니다.
    }
}
다른 내용은 Hashmap 예제와 동일 하기 때문에 Test클래스만 가져 왔다.
package Colletion.treemap;
public class MemberTreeMapTest {
    public static void main(String[] args) {
        MemberTreeMap manager = new MemberTreeMap();
        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();
        //Lee회원님의 아이디는 100입니다.
        //Kim회원님의 아이디는 200입니다.
        //Park회원님의 아이디는 300입니다.
        manager.removeMember(200);
        manager.showAllMember();
        //Lee회원님의 아이디는 100입니다.
        //Park회원님의 아이디는 300입니다.
  
    }
}