반응형
keySet()을 이용한 방법
keySet() 메서드는 HashMap의 모든 key들을 Set로 리턴합니다.
리턴한 Set의 key로 value를 가져와서, 찾고자하는 value값을 조건식으로 비교하여 해당 value의 key를 찾을 수 있습니다.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Integer> grade = new HashMap<>();
grade.put("철수", 100);
grade.put("짱구", 30);
grade.put("훈이", 60);
grade.put("맹구", 20);
grade.put("유리", 90);
for (String key : grade.keySet()) {
// grade.get(key) = value 값
if (grade.get(key) == 100) {
System.out.println("100점을 맞은 학생은 : " + key);
}
}
}
}
entrySet()을 이용한 방법
entrySet() 메서드는 Key와 Value에 대한 Map.Entry를 리턴합니다.
위와 동일한 방법으로 value를 비교하여 원하는 key들을 찾을 수 있습니다.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Integer> grade = new HashMap<>();
grade.put("철수", 100);
grade.put("짱구", 30);
grade.put("훈이", 60);
grade.put("맹구", 20);
grade.put("유리", 90);
for (Map.Entry<String, Integer> entry : grade.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
if (value == 90) {
System.out.println("90점을 맞은 학생은 : " + key);
}
}
}
}
Stream을 이용한 방법
최종연산을 toList()가 아닌 toSet()으로 Set을 반환할 수도 있으며, 원하는 반환 값으로 변경가능합니다.
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Map<String, Integer> grade = new HashMap<>();
grade.put("철수", 100);
grade.put("짱구", 30);
grade.put("훈이", 60);
grade.put("맹구", 20);
grade.put("유리", 90);
List<String> foundKey = grade.entrySet()
.stream()
.filter(entry -> Objects.equals(entry.getValue(), 20))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
System.out.println("20점을 맞은 학생은 : " + foundKey);
}
}
참고자료
https://codechacha.com/ko/java-how-to-get-key-from-value-in-hashmap/
'◼ JAVA' 카테고리의 다른 글
[Java/자바] 날짜와 시간 (Date, calendar) (0) | 2022.12.26 |
---|---|
[Java/자바] Join과 Split을 이용한 문자열 제어 (5) | 2022.12.12 |
[Java/자바] 숫자 천자리 구분, 소수점 표기 방법(DecimalFormat) (0) | 2022.12.06 |
[Java/자바] map - getOrDefault의 활용 (0) | 2022.12.05 |
[Java/자바] List와 String(문자열, 배열)을 서로 변환하는 법 (0) | 2022.12.04 |