JAVA - 람다와 스트림(4)

jodbsgh·2022년 4월 28일
0

💡"JAVA"

목록 보기
57/67

Predicate의 결합

  • and(), or(), negate()로 Predicate를 하나로 결합(default메서드)
Predicate<Integer> p = i -> i <100;
Predicate<Integer> q = i -> i <200;
Predicate<Integer> r = i -> i%2 == 0;


Predicate<Integer> notP = p.negate();		 
// i >= 100

Predicate<Integer> all  = notP.and(q).or(r); 
// 100 <= i &&<200 \\ i%2==0

Predicate<Integer> all2 = notP.and(q.or(r)); 
// 100 <=i && (i<200 \\ i % 2 ==0)

System.out.println(all.test(2));	// true
System.out.println(all2.test(2));	// false

predicate를 통해서 비교, 논리 연산을 하나의 참조변수에 담고 Predicate를 참조하는 변수를 통해서 test 메서드를 호출하여 실행함

등가비교를 위한 Predicate의 작성에는 isEqual()를 사용(static메서드)

Predicate<String> p = Predicate.isEqual(str1)	//isEquals()은 static 메서드
Boolean result = p.test(str2);	//str1과 str2가 같은지 비교한 결과를 반환

boolean result = Predicate.isEqual(str1).test(str2);

컬렉션 프레임웍과 함수형 인터페이스

  • 함수형 인터페이스를 사용하는 컬렉션 프레임웍의 메서드(와일드 카드 생략)
profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글