#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