티스토리 뷰

[java 14강] java 맵(Map/HashMap)




이번 14 강에서는 java map 에 대해서 알아보겠습니다.


자바에서 많이 사용되는 util 입니다.


map 을 쉽게 설명하면...


"강아지이름 = 엔젤"


이런 식으로 뭐(키)는 뭐(값)다! 라고 사용하는것이 바로 map 입니다.


map 의 형식은 key 와 value 로 쌍을 이루어 존제 합니다.


그럼 여기서 집고 넘어가야할것...!!!


그럼 이렇게 쓰면 되지 않나요?  


string 강아지이름 = "엔젤"


이렇게 변수로 쓰면 되는거 아닌가요?


이런 의구심이 들수 있습니다.


하지만 계속 해서 변수를 생성할꺼인가요??  이런점을 보안해서 나온것이 맵 입니다.


그냥 계속 넣을수 있습니다....


그럼 바로 예제로 들어가 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package test;
 
import java.util.HashMap;
import java.util.Map;
 
/*
 * @author 국브
 */
public class test {
        public static void main(String[] args) {
            Map<StringString> testMap = new HashMap<StringString>();
            /*
            HashMap은 Map을 구현한다. Key와 value를 묶어 하나의 entry로 저장한다는 특징을 갖는다.
            그리고 hashing을 사용하기 때문에 많은양의 데이터를 검색하는데 뛰어난 성능을 보인다.
            Map 인터페이스의 한 종류로 ( "Key", value) 로 이뤄져 있다.
            key 값을 중복이 불가능 하고 value는 중복이 가능. value에 null값도 사용 가능하다.
            멀티쓰레드에서 동시에 HashMap을 건드려 Key - value값을 사용하면 문제가 될 수 있다. 
            멀티쓰레드에서는 HashTable을 쓴다
             */
            //testMap 에 String 값의 키값을 넣어주고, String 값의 값을 넣어 준다
            testMap.put("1번 강아지 이름""바보");  
            //testMap 에 String 값의 키값을 넣어주고, String 값의 값을 넣어 준다
            testMap.put("2번 강아지 이름""멍청이");    
            //testMap 에 String 값의 키값을 넣어주고, String 값의 값을 넣어 준다
            testMap.put("3번 강아지 이름""개");        
            for(int i = 1; i <= testMap.size(); i++){
                System.out.println(testMap.get((i+"번 강아지 이름")));
            }  
        }
}
cs


위 예제는 testMap 라는  map 을 생성하고 put 메소드를 이용하여 키와 값을 넣어준후...


get 메소드를 이용하여 값을 꺼내 출력하였습니다.


그럼 바로 콘솔 출력물인 답을 확인해보져!



이렇게 "1번 강아지 이름" ~ "3번 강아지 이름" 이 모두 map 한곳에 담겼다가 꺼내서 사용할수 있었습니다.


이렇게 map 은 정말 편한 유틸입니다.....


그만큼 자주사용합니다..


그러니 꼭! 정확히 배우고 가시길 바랍니다.


굼굼한점은 댓글 달아주세요! ^^


밑에는 map 메서드를 정리해 놓았습니다.


수고하세요!




 




*참고! map 생성자 / 메서드 정리!!

생성자 / 메서드

설명 

HashMap()

- HashMap 객체를 생성

ex) HashMap<String , Integer> map = new HashMap<String , Integer>();

      Map<String, Integer> map = new HashMap<String, integer>();

HashMap(int initlalCapacity)

- 지정된 값을 초기 용량으로 하는 HashMap객체를 생성한다.

HashMap(int initlalCapacity, float loadFactory)

- 지정된 값을 초기용량과 load factory의 HashMap 객체를 생성한다. 

HashMap(Map m) 

- 주어진 Map에 저장된 모든 요소를 포함하는 HashMap을 생성한다. 

void clear()

- HashMap에 저장된 모든 객체를 제거한다. 

ex) map.clear();

Object clone()

- 현재 HashMap을 복제하여 반환한다. 

ex) newmap = (HashMap)map.clone();

boolean containsKey(Object Key)

- HashMap에 지정된 키(Key)가 포함되어 있는지 알려준다. 

boolean containsValue(Object Value)

- HashMap에 지정된 값(Value)가 포함되어 있는지 알려준다. 

Set entrySet()

- HashMap에 저장된 Key - Value갑슬 엔트리(키와 값을 결합)의 형태로 Set에 저장하여 반환

ex) map.put("A", 1);

      map.put("B", 2);

      map.put("C", 3);

      Set set = map.entrySet();

      System.out.println("set values are" + set);

      (result) set values : [A=1,B=2,C=3]

Object get(Object Key)

- 지정된 Key 의 값을 반환한다. 

ex) map.put("A", 1);

      map.put("B", 2);

      map.put("C", 3);

      String val = (String)map.get("B");

System.out.println("Value for key B is: " + val);

 

(result) Value for key B is 2

bloolean isEmpty

- HashMap이 비어있는지 확인한다.

ex) boolean val = map.isEmpty();

Set keySet()

- HashMap에 저장된 모든 키가 저장된 Set을 반환한다.

ex) map.put("A", 1);

      map.put("B", 2);

      map.put("C", 3);

      Set keyset = map.keySet();

      System.out.println("Key set values are" + keyset);

      (result) Key set values are [A,B,C]

Object put(Object Key, Object Value)

- HashMap에 키와 값을 저장.

ex) map.put("A", "aaa");

      map.put("B", "bbb");

      map.put("C", "ccc");

void putAll(Map m)

- Map에 해당하는 모든 요소를 HashMap에 저장한다. 

Object remove(Object Key)

- HashMap에서 지정된 키로 지정된 값을 제거한다.

ex) map.remove("key");

int size()

- HashMap에 저장된 요소의 개수를 반환한다. 

Collection values()

- HashMap에 저장된 모든 값을 컬렉션 형태로 반환한다. 


댓글