Map 계열 자료구조

이한수·2022년 8월 5일
0

자료구조

목록 보기
3/3
post-thumbnail

🚗 Map 특징

  • 자료를 쌍으로 관리합니다.
  • Key는 유일하며 , value는 중복이 가능합니다.
  • 내부적으로 해시 알고리즘에 의해 구현되었습니다.

🚗HashMap

  • key값이 정해지면 key값을 해시값으로 변환하여 해시 테이블에 저장 합니다.
  • 자료 추가 속도나 검색 속도가 상당히 빠릅니다.

참고 : 자바는 해시 테이블의 75%까지 사용하고 , 컴파일러가 자동으로 메모리를 확장합니다.

//선언
HashMap<String , Integer> map = new HashMap<>();


//추가
map.put("홍길동" , 20);

//삭제
map.remove("홍길동");

//모든 값 제거
map.clear();

//크기
map.size();

//가져오기
map.get("홍길동");

//키값을 가지고 있는지
map.containsKey("홍길동");

//전부 순회하기
//첫번째,
  HashMap<String, Integer> map = new HashMap<>();
        for(Map.Entry<String , Integer> m : map.entrySet()){
            System.out.println(m.getKey());
            System.out.println(m.getValue());
        }
        
 //두번째,
     HashMap<String, Integer> map = new HashMap<>();
        Iterator<String> iterator = map.keySet().iterator();
        while(iterator.hasNext()){
            System.out.println( map.get(iterator.next()));
        }

🚗HashTable

  • HashMap과 비슷합니다.
  • 마찬가지로 HashMap과 달리 동기화를 지원한다는 차이가 있으므로 생략하겠습니다.

🚗TreeMap

key 값으로 자료를 정렬하려면 TreeMap를 사용할 수 있습니다.
TreeSet과 마찬가지로 이진 탐색 트리를 기반으로 합니다.

또한, Comparable 혹은 Comparator를 이용하여 정렬 조건을 구현해줘야 합니다.


 //선언
TreeMap<String , Integer> tree = new TreeMap<>();
 
 //추가 및 삭제 ,포함여부,순회방식은 다 HashMap과 같습니다.
 
 //최소 엔트리 출력
 map.firstEntry();
 
 //최소 키 출력
 map.firstKey();
 
 //최대 엔트리 출력
 map.lastEntry();
 
 //최대 키 출력
 map.lastKey();
profile
성실하게

0개의 댓글