일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 대외활동/카카오테크캠퍼스
- 개발/Tools/프레임워크/Spring
- 개발/프레임워크&라이브러리
- 개발/OOP
- 개발/Java/Spring
- ⌨️Developer
- 카테캠
- 개발/CS/OS
- 카카오테크캠퍼스
- 취업
- 알고리즘
- AI/ML
- 개발/네트워크
- ai
- 카카오 테크 캠퍼스
- 개발/보안
- 개발/webrtc
- 개발/환경
- 개발/언어론
- ⌨️Developer/보안
- 개발/MySQL
- 개발/Java
- 개발/CS/알고리즘
- electron
- 개발/언어/Java
- 개발/컴퓨터네트워크
- 개발/에러
- 개발
- 개발/Electron
- AI/GPT
Archives
- Today
- Total
봄수의 연구실
Java의 Reduce - 🐥 카카오 테크 캠퍼스 본문
Java의 Reduce()
Java의 reduce() 연산은 프로그래머가 정의한 연산을 스트림의 요소에 적용합니다.
T reduce(T identity, BinaryOperator<T> accumulator)
reduce()
메서드의 두 번째 인수는 람다 식 또는 작업을 지정하는BinaryOperator
구현 클래스입니다.- reduce() 작업은 최종 작업이 호출될 때 수행되며 스트림의 요소를 소비합니다.
- reduce() 작업의 결과는 두 번째 인수로 전달된 람다 식 또는
BinaryOperator
구현 클래스에 의해 결정됩니다.
예: reduce()
작업을 사용하여 배열에 있는 모든 요소의 합을 찾습니다.
Arrays.stream(arr).reduce(0, (a,b)->a+b);
reduce()
메서드의 두 번째 인수는 (a,b) -> a+b
두 값 a
와 b
를 더하고 결과를 반환하는 람다 식 (a,b) -> a+b
입니다.
또한 reduce()
메서드의 두 번째 인수로 전달되는 람다 식은 더 복잡한 작업을 위해 BinaryOperator
구현 클래스로 대체될 수 있습니다.
이 경우 문자열 배열에서 가장 긴 문자열을 찾기 위해 BinaryOperator<String>
인터페이스를 구현합니다
class CompareString implements BinaryOperator<String>{
@Override
public String apply(String s1, String s2) {
if (s1.getBytes().length >= s2.getBytes().length)
return s1;
else
return s2;
}
}
이 클래스를 reduce()
메서드의 두 번째 인수로 사용하여 문자열 배열에서 가장 긴 문자열을 찾을 수 있습니다.
String[] greetings = {"안녕하세요~~~", "hello", "Good morning", "반갑습니다^^"};
Arrays.stream(greetings).reduce(new CompareString()).get();
위의 예에서 reduce()
작업은 CompareString
클래스를 사용하여 문자열 배열에서 가장 긴 문자열을 찾습니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'DEV > Java' 카테고리의 다른 글
Java의 로그 남기기 - 🐥 카카오 테크 캠퍼스 (0) | 2023.05.03 |
---|---|
Java의 예외처리 - 🐥 카카오 테크 캠퍼스 (0) | 2023.05.03 |
Stream (0) | 2023.05.02 |
Java의 Lambda - 🐥 카카오 테크 캠퍼스 (0) | 2023.05.02 |
Java의 내부 클래스 - 🐥 카카오 테크 캠퍼스 (0) | 2023.05.02 |