#36 rxjava: functional descriptor
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
package org.example.ex06;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 함수 디스크립터의 Consumer 예제
|
||||||
|
*/
|
||||||
|
public class FunctionalDescriptorConsumer {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<Integer> numbers = Arrays.asList(1, 6, 10, 30, 65, 70, 102);
|
||||||
|
forEachPrint(numbers, n -> System.out.println(n));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> void forEachPrint(List<T> numbers, Consumer<T> c) {
|
||||||
|
for(T number : numbers)
|
||||||
|
c.accept(number);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.example.ex06;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 함수 디스크립터의 Function 예제
|
||||||
|
*/
|
||||||
|
public class FunctionalDescriptorFunction {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<Character> characterList = Arrays.asList('a', 'b', 'c', 'd', 'e');
|
||||||
|
List<Integer> asciiNumbers = map(characterList, character -> (int) character);
|
||||||
|
|
||||||
|
for(int asciiNumber : asciiNumbers)
|
||||||
|
System.out.println(asciiNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T, R> List<R> map(List<T> list, Function<T, R> f){
|
||||||
|
List<R> result = new ArrayList<>();
|
||||||
|
for(T t : list)
|
||||||
|
result.add(f.apply(t));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package org.example.ex06;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 함수 디스크립터의 Predicate 예제
|
||||||
|
*/
|
||||||
|
public class FunctionalDescriptorPredicate {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<Integer> numbers = Arrays.asList(1, 6, 10, 30, 65, 70, 102);
|
||||||
|
List<Integer> result = filter(numbers, n -> n > 30);
|
||||||
|
|
||||||
|
for(int number : result)
|
||||||
|
System.out.println(number);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> List<T> filter(List<T> numbers, Predicate<T> p){
|
||||||
|
List<T> result = new ArrayList<>();
|
||||||
|
for(T number : numbers)
|
||||||
|
if(p.test(number))
|
||||||
|
result.add(number);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user