Predicate(조건식)의 결합
- and(), or(), negete()로 두 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 && i < 200 || i%2 ==0
Predicate<Integer> all2 = notP.and(q.or(r)); - 100 <= i && (i < 200 || i%2 ==0)
등가비교를 위한 Predicate의 작성에는 isEqual()를 사용(static메소드)
Predicate<String> p = Predicate.isEqual(str1); - isEquals()은 static메소드
Boolean result = p.test(str2); - str과 str2가 같은지 비교한 결과를 반환
==
boolean result = Predicate.isEqual(str1).test(str2)
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));
System.out.println(all.test(150)); // true
컬렉션 프레임워크와 함수형 인터페이스
- 함수형 인터페이스를 사용하는 컬렉션 프레임워크의 메소드(와일드 카드 생략)

list.forEach(i->System.out.print(i+",")); - list의 모든 요소를 출력
list.removeIf(x->x%2==0 || x%3==0); - 2또는 3의 배수를 제거
list.replaceAll(i->i*10); - 모든 요소에 10을 곱한다
map의 모든 요소를 {k,v}의 형식으로 출력
map.forEach((k,v)->System.out.println("{"+k+", "+v+"},"));
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
for(int i=0;i<10;i++)
list.add(i);
// list의 모든 요소를 출력
list.forEach(i->System.out.print(i+","));
System.out.println();
// list에서 2 또는 3의 배수를 제거한다.
list.removeIf(x-> x%2==0 || x%3==0);
System.out.println(list);
list.replaceAll(i->i*10); // list의 각 요소에 10을 곱한다.
System.out.println(list);
Map<String, String> map = new HashMap<>();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
map.put("4", "4");
// map의 모든 요소를 {k,v}의 형식으로 출력한다.
map.forEach((k,v)-> System.out.print("{"+k+","+v+"},"));
System.out.println();
}
}
출력
0,1,2,3,4,5,6,7,8,9,
[1, 5, 7]
[10, 50, 70]
{1,1},{2,2},{3,3},{4,4},
'하.. > java' 카테고리의 다른 글
| ch14 스트림 만들기 (0) | 2021.12.26 |
|---|---|
| ch14 스트림 스트림의 특징 (0) | 2021.12.26 |
| ch14 java.util.function 패키지 (0) | 2021.12.25 |
| ch14 함수형 인터페이스 (0) | 2021.12.25 |
| ch14 람다식 작성하기 (0) | 2021.12.25 |