2021-12-13
hashmap은 순서가 보장된 자료구조가 아니기 때문에 list와는 달리 루프를 돌면서 데이터를 가져올 수 없다. 때문에 iterator를 이용해 키값들을 추출하고, 해당 키값이 저장된 iterator를 이용해 hashmap의 전체 value 값들을 가져와야 한다. 오늘은 이와 같은 방법을 알아보자.
- 예제
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class HashMapTest {
@Test
public void hashMapLoop() {
//임의의 map을 생성
Map<String, String> map = new HashMap<String, String>();
map.put("name", "king");
map.put("age", "25");
map.put("gender", "man");
map.put("nick", "kingking");
//map에 키값과 같은 제네릭을 선언한 iterator에 map 키값들을 넣는다.
Iterator<String> it = map.keySet().iterator();
//키값이 존재할동안 반복
while(it.hasNext()) {
String key = it.next();
System.out.println(" =================== key -> " + key);
System.out.println(" =================== value ->" + map.get(key));
}
}
}
위의 코드와 같이 생성된 map 객체의 키값들을 iterator에 담고, while문에서 iterator에 값이 존재하는 동안 키값들을 추출하면 아래와 같은 결과를 얻을 수 있다. 앞서 말해듯이 hashmap은 순서가 보장되지 않기 때문에 실행하다 순서가 바뀔 수 있다.
메인 이미지 출처: Photo by Dillon Wanner on Unsplash