Categories: Java 언어Korean

Java 총 정리[83. Map]

Map

이전 걸음까지 중요한 자료구조인 List와 Set에 대해서 공부를 하였습니다. 이번 걸음에서는 Java의 자료구조의 마지막을 다뤄보려고 합니다. 이전 자료구조를 잘 이해를 하셨다면 어렵지 않게 이번 자료구조도 이해를 하실 수 있습니다.

Map에 대해서 이번 걸음에서 공부를 해보도록 하겠습니다. Map에 대한 전반적인 내용과 함께 예제를 적용하여 사용을 하는 방법까지 이야기를 할 예정입니다. 이번 걸음을 끝까지 보신다면 Map에 대한 이해가 많아 지실 수 있습니다.

Map이란 무엇 인지와 Map에 사용을 하는 Method 그리고 마지막으로는 Map의 예제를 통해 Map을 사용을 할 수 있는 방법을 같이 공부를 하도록 하겠습니다. 끝까지 이 글을 읽어 주세요!

Map 이란?

Map의 자료구조는 Key와 Value로 구성이 됩니다. 말 그대로 Key은 Value를 찾기 위한 열쇠이고 그 열쇠를 이용해서 접근을 하면 값을 사용을 할 수 있습니다. Key는 중복이 허용이 안됩니다. 같은 열쇠가 있으면 어느 것을 여는지 알 수가 없기 때문입니다. 하지만 Value은 중복이 허용됩니다. Key로 Value를 얻기 때문에 중복이 크게 상관이 없어지기 때문입니다.

※ 관련 인터페이서 : Map / 관련 클래스 : hashMap, treeMap

Map 관련 Method

추가 -> put(key, value)

값 추출 -> get(key)

키를 모두 추출 keyset() -> Set 변수로 받아야 합니다.

Set 검색 방식으로 반복하면서

Get(key)호출해서 값을 출력

remove(key) -> 삭제

Map 예제 소스

    
class C{
 int k;
}
class D{
 String str;
}
public class MapTest1 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  HashMap<C, D> map = new HashMap();
  C c = new C();
  C c1 = new C();
  map.put(c, new D());
  map.get(c1); // null
  map.get(c);//객체 D를 리턴
 }
}
    

위 소스와 같이 Key를 C객체로 하고 D를 값 객체로 활용해서 Map을 사용을 하고 있습니다. Key와 Value은 참조 자료형이면 뭐든 가능합니다.

    
      HashMap a = new HashMap<Integer, String>();
  
  a.put(0, "가위"); // map에 추가
  a.put(1, "바위");
  a.put(2, "보");
    
  /*안됩니다. 아래와 같이하려면 List
  for(int i =0;i<a.size();i++) {
   a.get(i)
  }*/ 
  Set<Integer> key=a.keySet(); //1. 키꾸러미 뺀다 -> Set
  
  Iterator<Integer> i = key.iterator(); //2. iterator 변경
  while(i.hasNext()) { // 3. hasNext 그 다음 값이 있는 확인 한다.
   Integer temp = i.next(); // 4. 그 다음 값을 추출한다. 
   System.out.println(a.get(temp));
  // 5. 추출된 key 값을 이용해 map-> get 함수 매개변수에 넣어준다.
  }
    

위 예제 소스를 보면 데이터 추가와 while문으로 key을 모르면 검색을 할 수 있는 방법에 대한 예제 입니다. key를 알면 바로 접근해서 그 안에 Value를 가질 수 있지만 Key를 모르는 경우에는 keyset()를 활용을 하면 전체 데이터를 확인을 해볼 수 있습니다.

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.