관리 메뉴

CASSIE'S BLOG

[get API] entrySet() 메소드 & 람다 표현식 본문

PROGRAMMING/JAVA SPRING

[get API] entrySet() 메소드 & 람다 표현식

ITSCASSIE1107 2023. 5. 19. 12:59

 

EntrySet() 

 

// http://localhost:8080/api/v1/get-api/request2?key1=value1&key2=value2
@GetMapping(value = "/request2")
public String getRequestParam2(@RequestParam Map<String, String> param) {
StringBuilder sb = new StringBuilder();

param.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});

 

param.entrySet().forEach(map -> {
    sb.append(map.getKey() + " : " + map.getValue() + "\n");
});

 

 

Java의 entrySet() 메서드는 Map 인터페이스의 메서드로, Map에 저장된 키-값 쌍의 집합인 Map.Entry 객체들의 집합인 Set을 반환합니다.

 

. param.entrySet()은 param 맵의 모든 키-값 쌍을 포함하는 Set<Map.Entry<String, String>>을 반환합니다.

 

forEach() 메서드를 호출하여 각 Map.Entry 객체에 대해 람다 표현식을 실행합니다.

 

람다 표현식은 각 Map.Entry 객체의 키와 값에 접근하여 StringBuilder에 추가합니다.

 

entrySet() 메서드에 매개변수가 없는 이유는, entrySet()은 Map 객체 자체에 정의된 메서드로, 매개변수 없이 호출해야 합니다.

 

Map 객체에 저장된 모든 키-값 쌍에 접근하기 위해서는 entrySet()을 호출하여 Set<Map.Entry<K, V>>을 얻은 후, 이를 순회하여 각각의 키와 값을 가져와야 합니다.

 

Entry

 

Entry refers to the nested interface Map.Entry in Java's java.util package. It represents a single key-value pair within a Map implementation (구현).

 

'Entry'는 Java의 java.util 패키지에 있는 중첩 인터페이스 'Map.Entry'를 의미합니다. 이는 'Map' 구현 내에서 단일한 key-value 쌍을 나타냅니다.

 

람다표현식

 

람다 표현식은 Java 8부터 도입된 기능으로,

 

함수형 프로그래밍을 지원하는 문법입니다. 람다 표현식은 익명 함수를 생성하기 위한 간편한 방법으로, 함수를 변수에 할당하거나 인자로 전달할 수 있습니다.

 

 

- 람다 표현식 부분

 

param.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});

여기서 forEach() 메서드에 전달된 람다 표현식 map -> { sb.append(map.getKey() + " : " + map.getValue() + "\n"); }가 있습니다.

 

이 람다 표현식은 Set<Map.Entry<String, String>>의 각 Map.Entry 객체에 대해 실행됩니다.

 

람다 표현식은 일반적으로 -> 연산자로 구분된 매개변수 목록함수 본문으로 구성됩니다.

 

위의 코드에서 map은 람다 표현식의 매개변수로 사용되고, 중괄호 {} 안에 있는 코드 블록이 함수 본문입니다.

 

이 블록은 map.getKey() + " : " + map.getValue() + "\n"을 StringBuilder에 추가하는 역할을 합니다.

 

The variable map is a newly written name in the lambda expression.

 

In lambda expressions, you don't need to explicitly declare the type of the parameter. The type is inferred from the context based on the method signature it is used with.

 

(map에서 type을 적어줄 필요가 없다고 한다.) 

반응형

'PROGRAMMING > JAVA SPRING' 카테고리의 다른 글

mySQL 부터  (0) 2023.06.03
[비공개] 파트3  (0) 2023.05.28
SPRING BOOT 구조 정리  (0) 2023.05.24
PUT API & Delete API & ResponseEntity  (0) 2023.05.23
get API  (0) 2023.05.19