java

[java] Functional Interface : Consumer, Predicate 알아보기

2022. 8. 4. 09:01
목차
  1. Consumer<T>
  2. Predicate<T> : return Boolean
728x90
반응형

Consumer<T>

consumer는 그냥 소비하는 역할을 한다. (일반적으로 아무것도 return 하지 않는다고 보면 된다.)

 

메소드

  • void accept (T t)
  • default Consumer<T> andThen(Consumer<? super T> after)
List<String> fruits = Arrays.asList("apple", "kiwi", "orange");
Consumer<List<String>> addNumber = list -> {
for (int i = 0; i < list.size(); i++) {
list.set(i, (i + 1) + ". " + list.get(i));
}
};
Consumer<List<String>> printList = list -> {
for (String fruit : list) {
System.out.println(fruit);
}
};
addNumber.andThen(printList).accept(fruits);
// 1. apple
// 2. kiwi
// 3. orange

 

Predicate<T> : return Boolean

predicate은 비교할 때 사용한다.

 

메소드

  • test : 값을 넘겨서 predicate를 수행
  • and / or : and나 or조건
  • static isEqual : 값이 같은지 확인
  • negate : Predicate가 리턴하는 값과 반대되는 값을 리턴하는 Predicate를 리턴

💡 predicate의 쓰임 : stream.fillter()는 predicate을 받는다.

//test
Predicate<Integer> predicate = (num) -> num > 10;
boolean result = predicate.test(100);
//and
Predicate<Integer> predicate1 = num -> num > 10;
Predicate<Integer> predicate2 = num -> num < 20;
boolean result2 = predicate1.and(predicate2).test(25);
//or
boolean result3 = predicate1.or(predicate2).test(5);
//isEqual //Stream
Stream<Integer> stream = IntStream.range(1, 10).boxed(); // Integer로 boxed된 stream을 반환
stream.filter(Predicate.isEqual(5)).forEach(System.out::println);
//negate
Predicate<Integer> negatePredicate = predicate1.negate();
result5 = negatePredicate.test(100);

 

728x90
반응형

'java' 카테고리의 다른 글

[java] eclipse (EgovFramework) 실행 오류 해결  (0) 2022.10.04
[java] Enum 알아보기  (0) 2022.08.04
[eclipse] unable to start within 45 seconds 오류 해결  (0) 2022.07.20
[Java] POI 오류, "허용되는 글꼴 수가 초과되어 이 파일에 글꼴 서식이 제대로 적용되지 않을 수 있습니다."  (2) 2022.06.16
[java] Lambda 람다란?  (0) 2022.06.10
  1. Consumer<T>
  2. Predicate<T> : return Boolean
'java' 카테고리의 다른 글
  • [java] eclipse (EgovFramework) 실행 오류 해결
  • [java] Enum 알아보기
  • [eclipse] unable to start within 45 seconds 오류 해결
  • [Java] POI 오류, "허용되는 글꼴 수가 초과되어 이 파일에 글꼴 서식이 제대로 적용되지 않을 수 있습니다."
우주유령
우주유령
우주유령
우주
우주유령
전체
오늘
어제
반응형
  • 분류 전체보기 (131)
    • javascript (28)
    • java (26)
    • Web (16)
    • React (7)
    • SQL (2)
    • Spring (20)
    • IntelliJ (6)
    • JSP (1)
    • Notion (1)
    • VScode (8)
    • Vue (3)
    • css (1)
    • tistory (1)
    • jpa (8)
    • 책 (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

최근 글

hELLO · Designed By 정상우.
우주유령
[java] Functional Interface : Consumer, Predicate 알아보기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.