[Java] 자료형4 (Map)

이용준·2022년 10월 24일
0

Java

목록 보기
7/29

1.Map

keyvalue
people사람
baseball야구

자바의 맵(Map)은 대응 관계를 쉽게 표한할 수 있게 해주는 자료형으로 사전(dictonary)과 비슷하다.

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

1-1.HashMap

자바의 맵(Map)중 가장 간단한 HashMap에 대해 알아보자.

Map 역시 List와 마찬가지로 인터페이스이다. Map 인터페이스를 구현한 Map 자료형에는 HashMap, LinkedHashMap, TreeMap등이 있다. 인터페이스에 대해서는 객체지향 챕터에서 자세하게 다룰 것이다

  1. put
    HashMap에 key, value 입력하는 메소드

    import java.util.HashMap;
    public class Sample{
     public static void main(String[] args){
     	HashMap<String, String> map = new HashMap<>();
       map.put("people", "사람");
       map.put("baseball", "야구");
      }
    }   

    HashMap 역시 제네릭스를 이용한다.위의 HashMap의 제네릭스는 Key, Value 모두 String 타입이다.

  2. get
    key의 value값을 얻기 위한 메소드

    System.out.println(map.get("people"));  // "사람" 출력

    맵의 key에 해당하는 value가 없을 경우 null이 리턴된다. 이때 null 대신 지정값을 얻고 싶은 경우 getOrDefault 메소드를 사용한다.

    System.out.println(map.getOrDefault("java","자바")); // "자바" 출력
  3. containsKey
    맵(Map)에 해당 키(key)가 있는지 여부 출력(true/false)

    System.out.println(map.containsKey("people"));  //true 출력
  4. remove
    맵(Map)의 항목 삭제하는 메소드로 key값의 (key,value)를 삭제하고 value 값을 리턴한다.

    System.out.println(map.remove("people")); // "사 람" 출력

    "people"에 해당되는 아이템(people:사람)이 삭제된 후 "사람"이 출력된다.

  1. size
    map의 갯수를 리턴한다.
    System.out.println(map.size()); // 1 출력
    "people","baseball" 두 값을 가지고 있다가 "people"이 삭제되었으므로 1이 출력된다.
  2. keySet
    맵(Map)의 모든 Key를 리턴한다.
    import java.util.HashMap;
    
    public class Sample{
      public static void main(String[] args){
        HashMap<String, String> map = new HashMap<>();
        map.put("people","사람");
        map.put("baseball","야구");
        System.out.println(map.keySet()); // [baseball, people] 출력
      }
    }      
    keySet() 메소드는 Map의 모든 Key를 Set 자료형으로 리턴한다.
    (Set 자료형은 다음과 같이 List 자료형으로 바꾸어 사용할 수 있다.)
    List<String> keyList = new ArrayList<>(map.keySet());
  • LinkedHashMap과 TreeMap
    Map은 순서에 상관없이 key로 value를 가져오는 특징이 있다.
    그러나 Map의 key 순서대로 데이터를 가져올 수 있는 방법이 있는데 이는 LinkedHashMapTreeMap을 사용하는 방법이다.
  • LinkedHashMap - 입력된 순서대로 데이터를 저장한다.
  • TreeMap - 입력된 key의 오름차순으로 데이터를 저장한다.
profile
뚝딱뚝딱

0개의 댓글