[자바] 맵(map)

Dragony·2020년 6월 11일
0

자바

목록 보기
4/4

Associative array, Hash 라고도 불리는 맵(map)에 대해 논의해보자.

맵은 사전(dictionary)와 비슷하다. 실제로 파이썬의 딕셔너리 컨테이너와 유사하다. 맵은 key:value의 쌍으로 되어있고,

리스트나 배열처럼 순차적(sequential)으로 해당 요소 값을 구하지 않고 key를 통해 value를 얻는다. 맵(map)의 가장 큰 특징이라면 key로 value를 얻어낸다는 점이다.

map은 List와 마찬가지로 인터페이스로 선언되어 있고, map을 구현한 여러 클래스들이 있다(HashMap, LinkedHashMap, TreeMap 등). API에서 All Known Implementing Classes를 확인해볼것

put


package com.javaproject.second;

import java.util.*;

public class Tryfirst {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		HashMap<String,String> map = new HashMap<String, String>();
		
		map.put("people","사람");
		map.put("animal","동물");
		
	
	}

}

key와 value는 위 예제에서 보듯이 put 메소드를 이용해 입력한다.

hash맵 역시 제네릭스(generics)를 이용한다. 위 해시맵의 제네릭스는 key, value 모두 string 타입이다.

get

key에 해당되는 값을 얻기 위해서는 다음과 같이 한다.


System.out.println(map.get("people"));

get 메소드와 키를 사용해 value를 얻어올 수 있다.

containsKey

맵에 해당 key가 있는지를 조사하여 있으면 true 를 없으면 false를 리턴한다.


System.out.println(map.containsKey("people"));

size

size 메소드는 map의 개수를 리턴한다.


System.out.println(map.size());

remove

맵의 항목을 삭제하는 메소드로, key 값에 해당하는 아이템(key,value)를 삭제한 후, 그 value 값을 리턴한다.


System.out.println(map.remove("people"));

linkedHashMap과 TreeMap

Map의 가장 큰 특징은 순서에 의존하지 않고 key로 value를 가져오는데 있다. 하지만 가끔은 Map에 입력된 순서대로 데이터를 가져오고 싶은 경우도 있고 때로는 입력된 key에 의해 소트된 데이터를 가져오고 싶을 수도 있을 것이다. 이런경우에는 LinkedHashMap과 TreeMap을 사용하는 것이 유리하다.

  • LinkedHashMap은 입력된 순서대로 데이터가 출력되는 특징을 가지고 있다.
  • TreeMap은 입력된 key의 소트순으로 데이터가 출력되는 특징을 가지고 있다.
profile
안녕하세요 :) 제 개인 공부 정리 블로그입니다. 틀린 내용 수정, 피드백 환영합니다.

0개의 댓글