반응형
자바 8에서 java.util.function 패키지에 추가된 기본 함수형 인터페이스 정리
Function <T, R>
=> T를 입력으로 R을 출력하여 반환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Java8Test { public static void main(String args[]) { Function<String, Integer> mapStrToInt = new Function<String, Integer>() { public Integer apply(String str) { if (str == "wedul") { return 1; } return 2; } }; List<String> testData = Arrays.asList("wedul","dd","babo"); testData.stream().map(mapStrToInt).forEach(System.out::println); } } | cs |
Predicate<T>
-> T를 입력으로 boolean을 출력으로 반환
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void main(String args[]) { Predicate<Integer> predictData = new Predicate<Integer> () { @Override public boolean test(Integer tes) { return tes > 10; } }; List<Integer> test = Arrays.asList(12,3,4,55); test.stream().filter(predictData).forEach(System.out::println); } | cs |
Consumer <T>
-> T를 입력으로 아무것도 반환하지 않는다.
-> 단순하게 입력받은 데이터를 처리할때 사용된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void main(String args[]) { Consumer<Integer> consumerData = new Consumer<Integer>() { @Override public void accept(Integer idnt) { System.out.println(idnt); } }; List<Integer> test = Arrays.asList(12,3,4,55); test.stream().forEach(consumerData); } | cs |
Supplier<T> : 입력을 취하지 않고 T를 반환
입력한 데이터를 가지고 있으며, get 메소드를 사용하여 호출한 곳에서 입력된 데이터를 사용할 수 있게 반환 해 주는 기능 제공
1 2 3 4 5 6 7 8 9 10 11 12 | public static void main(String args[]) { Supplier<Integer> supplier = new Supplier<Integer>() { @Override public Integer get() { return 1; } }; // List<Integer> test = Arrays.asList(12,3,4,55); System.out.println(supplier.get()); } | cs |
반응형
'JAVA > Java 8' 카테고리의 다른 글
Java8 람다식의 지연실행 (Lazy Programming) (0) | 2018.05.31 |
---|---|
Java8 함수형 인터페이스 만들어서 사용하기 (0) | 2018.05.31 |
Java8 스트림을 이용한 데이터 추출 (0) | 2018.05.31 |
Java8 스트림(stream) 연산 (0) | 2018.05.31 |
Java8 스트림(Stream) API (0) | 2018.05.31 |