관리 메뉴

HAMA 블로그

자바에서 Map 순회 본문

Java

자바에서 Map 순회

[하마] 이승현 (wowlsh93@gmail.com) 2015. 5. 12. 16:06

HashMap, TreeMap,LinkedHashMap, Hashtable 등등에 공통사용.


Method #1: 엥간하면 이거 (For Each)  사용 (java5 이상) 


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

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {

          int key   = entry.getKey();

int value =  entry.getValue();

}


For-Each loop 는  NullPointerException 를 던지기때문에 null 체크를 해야한다. 



Method #2:  key, value 둘중하나만 사용하면 이거 사용


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


//iterating over keys only

for (Integer key : map.keySet()) {

    System.out.println("Key = " + key);

}


//iterating over values only

for (Integer value : map.values()) {

    System.out.println("Value = " + value);

}



Method #3:  예전 자바라면 이거 사용 (iterator 를 굳이 사용할 필요없음) 


Using Generics:


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

Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();

while (entries.hasNext()) {

    Map.Entry<Integer, Integer> entry = entries.next();

    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

}


Without Generics:


Map map = new HashMap();

Iterator entries = map.entrySet().iterator();

while (entries.hasNext()) {

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

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

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

    System.out.println("Key = " + key + ", Value = " + value);

}



Method #4: 엥간하면 사용하지 말기를..


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

for (Integer key : map.keySet()) {

    Integer value = map.get(key);

    System.out.println("Key = " + key + ", Value = " + value);

}


'Java' 카테고리의 다른 글

자바 스케쥴링 & 타이머 방법들  (0) 2015.05.14
Java Time/ Date / Calendar example  (0) 2015.05.13
Java Time,Data 클래스의 문제점과 JAVA 8  (0) 2015.05.13
자바 List 순회  (0) 2015.05.12
자바 성능 관련 이슈들 모음  (0) 2015.05.05
Comments