S.S.G

HashMap<K,V> 본문

코딩/JAVA

HashMap<K,V>

자유로운개발 2016. 7. 1. 14:30
반응형

* 해쉬맵(HashMap)은 내부에 '키' 와 '값' 을 저장하는 자료 구조를 각각 가지고 있음.

* put(), get() 메소드를 이용하여 해시맵에 요소를 삽입하고 검색할 수 있음.

* 요소에 접근하기 위해서는 '키'로 검색하여야 하기 때문에 요소의 위치나 순서가 중요하지 않은 응용에 많이 사용됨.

 

영어 단어와 한글 단어를 쌍으로 HashMap에 저장하고 영어 단어로 한글 단어를 검색하는 프로그램 작성해보기

 

import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

 

public class Test {

 public static void main(String arg[]){
  
  HashMap<String,String> param = new HashMap<String,String>();
  
  param.put("apple","사과");
  param.put("baby","아기");
  param.put("love","사랑");
  
  //param 컬렉션에 들어있는 모든 (key, value) 쌍 출력
  Set<String> keys = param.keySet();  //key 문자열을 가진 집합 Set 컬렉션 리턴
  Iterator<String> it = keys.iterator(); //key 문자열을 순서대로 접근할 수 있는 Iterator 리턴
  while(it.hasNext()){
   String key = it.next();
   String value = param.get(key);
   System.out.println("("+ key +","+ value + ")");
  }
  
  //사용자로부터 영어 단어를 입력받고 한글 단어 검색해보기
  Scanner scanner = new Scanner(System.in);
  for(int i=0;i<3;i++){
   System.out.println("찾고 싶은 단어는?");
   String eng = scanner.next();
   System.out.println(param.get(eng));  //'키' eng에 해당하는 '값' 리턴
  }
 }
}

실행 결과

 

(love,사랑)
(apple,사과)
(baby,아기)
찾고 싶은 단어는?
love
사랑
찾고 싶은 단어는?
app   -----> app이라는 것이 없기 때분에 null
null
찾고 싶은 단어는?
baby
아기

 

 

★ 원하는 Set을 가져온후 iterator를 사용해서 출력하는 방식 입니다. iterator는 Collection에 포함된 객체들에 접근할 수 있는 인터페이스라고 생각하면 됩니다. 보통 map에서 사용하는 entrySet() 이나 keySet() 메서드는 반환타입이 Set인 데이터들을 반환 하는데 Set이라는 인터페이스는 Collection인터페이스를 구현한 클래스이기 때문에, iterator를 사용해서 접근 할수 있는 것 입니다.

반응형