HashMap은 key 와 value 쌍으로 존재하는 


자료구조이다.


프로그래머가 key값을 알고 있는 상태에서 쓰는 경우도 있지만,


프로그래머가 동적으로 구한 데이터를 key, value 쌍으로 


HashMap을 쓴 경우는 프로그래머도 key 값이 무엇이 들어갔는지 알 수가 없다.


arrayList 처럼 index 가 정해져 있는것도 아니라


순차적으로 Log 에 찍어보기도 애매하다.


오늘 포스팅 내용은 이러한 상황에서 HashMap key값이 무엇이 있는지


구하는것이다.


HashMap 클래스 내부구조로 Set 자료구조에 key를 보관한 객체가 존재한다.


Set 객체를 통해 key를 가져오는 것이다. 


Set 객체에 들어있는 값(key)를 iterator 인터페이스를 통해, 순차적으로 탐색할 준비를한다.



HashMap<String,String> hashMap = new HashMap<>();

hashMap.put("key","value");


Set set = hashMap.keySet();

Iterator iterator = set.iterator();



가져온 후, iterator를 통해 순차탐색한다.


while(iterator.hasNext()){

  String key = (String)iterator.next();

  System.out.println("hashMap Key : " + key);

}


Entry 객체를 이용한 방법도 있다.


Entry 객체를 이용하면 key 와 value를 동시에 구할 수 있다.


물론 위에 코드로 key값을 구한 후, hashMap.get(key) 로 value를 구해도 상관없다.


Set set = hashMap.entrySet();

Iterator iterator = set.iterator();


while(iterator.hasNext()){

  Map.Entry entry = (Map.Entry)iterator.next();

  String key = (String)entry.getKey();

  String value = (String)entry.getValue();

  System.out.println("hashMap Key : " + key);

  System.out.println("hashMap Value : " + value);

}


주의할 점은 Set 자료형에 keySet() 을 넣은 경우와 entrySet() 경우를 잘 구별해서 이용 해야한다.




'Java' 카테고리의 다른 글

JAVA - [SWING] LinearLayout 사용하기.  (0) 2017.08.25
JAVA - DownCasting(다운캐스팅)  (25) 2016.08.27
JAVA - 변수 선언할때 m을 왜 붙일까?  (2) 2016.07.05
JAVA - UpCasting(업캐스팅)  (9) 2016.06.07
JAVA - Casting(캐스팅)  (0) 2016.05.26

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts