java

HashMap에서 Key, Value 꺼내기

코드지우개 2023. 3. 10. 14:13
반응형
keySet()
Map<String, String> map = new HashMap<>();

map.put("java", "javaVal");
map.put("html", "htmlVal");
map.put("css", "cssVal");
map.put("javaScript", "javaScriptVal");

//map에 key값을 꺼내서 Set타입으로 리턴
Set<String> set = map.keySet(); 

//Set은 저장순서가 유지도지 않기때문에 인덱스로 객체를 검색하는 메소드가 없다 대신,
//전체 객체를 대상으로 한번씩 반복해서 가져오는 반복자(iterator)를 제공한다
Iterator<String> keySet = set.iterator(); 
//Iterator<String> keySet = map.keySet().iterator(); 또는 keySet().iterator() 붙여서 사용

while(keySet.hasNext()){ //hasNext() : 가져올 객체가 있으면 true를 리턴 없으면 false를 리턴
	String key = keySet.next(); // next() : 컬렉션에서 하나의 객체를 가져온다
	String value = map.get(key); // get() : 주어진 키가 있는 값을 리턴
	System.out.println("key >> " + key);
	System.out.println("value >> " + value);
}
 

entrySet()
Map<String, String> map = new HashMap<>();

map.put("java", "javaVal");
map.put("html", "htmlVal");
map.put("css", "cssVal");
map.put("javaScript", "javaScriptVal");

//키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴
Set<Map.Entry<String,String>> set = map.entrySet(); 

Iterator<Map.Entry<String,String>> keySet = set.iterator();
//Iterator<Map.Entry<String,String>> keySet = map.entrySet().iterator(); 또는 keySet().iterator() 붙여서 사용
while(keySet.hasNext()){
	Map.Entry<String,String> entry = keySet.next();
	System.out.println("key >> " + entry.getKey());//Map.Entry에 getKey메소드
	System.out.println("value >> " + entry.getValue());//Map.Entry에 getValue메소드
}
 

 

forEach( 자바8 이후 )
Map<String, String> map = new HashMap<>();

map.put("java", "javaVal");
map.put("html", "htmlVal");
map.put("css", "cssVal");
map.put("javaScript", "javaScriptVal");

map.forEach((key,value) -> { 
	System.out.println("key >> " + key);
	System.out.println("val >> " + value);
});
 
반응형