본문 바로가기
공부/Java

함수형 인터페이스 : Predicate 결합

by JERO__ 2022. 3. 1.

1. 두 Predicate를 하나로 결합 : and(), or(), negate()

Predicate<Integer> p = i -> i < 100;
Predicate<Integer> q = i -> i < 200;
Predicate<Integer> r = i -> i % 2 == 0;

Predicate<Integer> notP = p.negate();
Predicate<Integer> all = notP.and(q).or(r);
Predicate<Integer> all2 = notP.and(q.or(r));

 

2. 컬렉션 프레임워크 메서드

2-1. List

- foreach

- removeIf

- replaceAll

List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));
list.forEach(i -> System.out.print(i + ", "));

System.out.println();
list.removeIf(x -> x % 2 == 0);
System.out.println(list);

list.replaceAll(i -> i*10);
System.out.println(list);
1, 2, 3, 4, 5, 6, 7, 8, 9, 
[1, 3, 5, 7, 9]
[10, 30, 50, 70, 90]

2-2. Map

- foreach

Map<String, String> map = new HashMap<>();
map.put("a1", "a2");
map.put("b1", "b2");
map.put("c1", "c2");
map.put("d1", "d2");

map.forEach((k, v) -> System.out.println(k + " : " + v));
a1 : a2
d1 : d2
c1 : c2
b1 : b2

 

'공부 > Java' 카테고리의 다른 글

스트림(Stream) - 1  (0) 2022.03.08
람다식 -> 메서드 참조  (0) 2022.03.01
java.util.function 패키지 (함수형 인터페이스)  (0) 2022.03.01
함수형 인터페이스  (0) 2022.03.01
람다식 (Lambda Expression)  (0) 2022.03.01

댓글