Skip to content

Commit 7d60359

Browse files
committed
Today I Learned Lambda
1 parent 52330b2 commit 7d60359

22 files changed

Lines changed: 616 additions & 0 deletions
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package lambda.lambda5.filter;
2+
3+
import java.util.ArrayList;
4+
import java.util.LinkedList;
5+
import java.util.List;
6+
7+
public class FilterMainV1 {
8+
9+
public static void main(String[] args) {
10+
List<Integer> numbers = List.of(1,2,3,4,5,6,7,8,9,10);
11+
12+
13+
// 짝수만 거르기
14+
List<Integer> evenNumbers = filterEvenNumber(numbers);
15+
System.out.println("evenNumbers = " + evenNumbers);
16+
17+
// 홀수만 거르기
18+
List<Integer> oddNumber = filterOddNumber(numbers);
19+
System.out.println("oddNumber = " + oddNumber);
20+
21+
}
22+
23+
private static List<Integer> filterEvenNumber(List<Integer> numbers) {
24+
List<Integer> filtered = new ArrayList<>();
25+
for (Integer number : numbers) {
26+
if(number % 2 == 0) filtered.add(number);
27+
}
28+
return filtered;
29+
}
30+
31+
private static List<Integer> filterOddNumber(List<Integer> numbers) {
32+
List<Integer> filtered = new ArrayList<>();
33+
for (Integer number : numbers) {
34+
if(number % 2 == 1) filtered.add(number);
35+
}
36+
return filtered;
37+
}
38+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package lambda.lambda5.filter;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Predicate;
6+
7+
public class FilterMainV2 {
8+
9+
public static void main(String[] args) {
10+
List<Integer> numbers = List.of(1,2,3,4,5,6,7,8,9,10);
11+
Predicate<Integer> isEvenNumber = i -> i%2 == 0;
12+
13+
// 짝수만 거르기
14+
List<Integer> evenNumbers = filter(numbers, i -> i % 2 ==0 );
15+
System.out.println("evenNumbers = " + evenNumbers);
16+
17+
// 홀수만 거르기
18+
List<Integer> oddNumber = filter(numbers, i -> i % 2 == 1);
19+
System.out.println("oddNumber = " + oddNumber);
20+
21+
}
22+
23+
private static List<Integer> filter(List<Integer> numbers, Predicate<Integer> predicate) {
24+
List<Integer> filtered = new ArrayList<>();
25+
for (Integer number : numbers) {
26+
if(predicate.test(number)) filtered.add(number);
27+
}
28+
29+
return filtered;
30+
}
31+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package lambda.lambda5.filter;
2+
3+
import java.util.List;
4+
5+
import static lambda.lambda5.filter.IntegerFilter.*;
6+
7+
public class FilterMainV4 {
8+
9+
public static void main(String[] args) {
10+
List<Integer> numbers = List.of(1,2,3,4,5,6,7,8,9,10);
11+
12+
// 짝수만 거르기
13+
List<Integer> evenNumbers = filter(numbers, i -> i % 2 ==0 );
14+
System.out.println("evenNumbers = " + evenNumbers);
15+
16+
// 홀수만 거르기
17+
List<Integer> oddNumber = filter(numbers, i -> i % 2 == 1);
18+
System.out.println("oddNumber = " + oddNumber);
19+
20+
}
21+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package lambda.lambda5.filter;
2+
3+
import java.util.List;
4+
5+
import static lambda.lambda5.filter.GenericFilter.filter;
6+
7+
public class FilterMainV5 {
8+
9+
public static void main(String[] args) {
10+
List<Integer> numbers = List.of(1,2,3,4,5,6,7,8,9,10);
11+
12+
// 짝수만 거르기
13+
List<Integer> evenNumbers = filter(numbers, i -> i % 2 ==0 );
14+
System.out.println("evenNumbers = " + evenNumbers);
15+
16+
// 홀수만 거르기
17+
List<Integer> oddNumber = filter(numbers, i -> i % 2 == 1);
18+
System.out.println("oddNumber = " + oddNumber);
19+
20+
// 문자 사용 필터
21+
List<String> strings = List.of("A", "BB", "CCC");
22+
List<String> stringResult = filter(strings, s -> s.length()>=2);
23+
System.out.println("stringResult = " + stringResult);
24+
25+
}
26+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package lambda.lambda5.filter;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Predicate;
6+
7+
public class GenericFilter {
8+
public static <T> List<T> filter(List<T> numbers, Predicate<T> predicate) {
9+
List<T> filtered = new ArrayList<>();
10+
for (T number : numbers) {
11+
if(predicate.test(number)) filtered.add(number);
12+
}
13+
14+
return filtered;
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package lambda.lambda5.filter;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Predicate;
6+
7+
public class IntegerFilter {
8+
public static List<Integer> filter(List<Integer> numbers, Predicate<Integer> predicate) {
9+
List<Integer> filtered = new ArrayList<>();
10+
for (Integer number : numbers) {
11+
if(predicate.test(number)) filtered.add(number);
12+
}
13+
14+
return filtered;
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package lambda.lambda5.map;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Function;
6+
7+
public class GenericMapper {
8+
9+
public static <T, R> List<R> map(List<T> list, Function<T, R> mapper) {
10+
List<R> numbers = new ArrayList<>();
11+
for (T s : list) {
12+
numbers.add(mapper.apply(s));
13+
}
14+
return numbers;
15+
}
16+
}

‎lambda/lambda5/map/MapMainV1.java‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package lambda.lambda5.map;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class MapMainV1 {
7+
public static void main(String[] args) {
8+
List<String> list = List.of("1", "12","123","1234");
9+
10+
// 문자열을 숫자로 변환
11+
List<Integer> numbers = mapStringToIntger(list);
12+
System.out.println("numbers = " + numbers);
13+
14+
}
15+
16+
private static List<Integer> mapStringToIntger(List<String> list) {
17+
List<Integer> numbers = new ArrayList<>();
18+
for (String s : list) {
19+
Integer value = Integer.valueOf(s);
20+
numbers.add(value);
21+
}
22+
return numbers;
23+
}
24+
}

‎lambda/lambda5/map/MapMainV2.java‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package lambda.lambda5.map;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Function;
6+
7+
public class MapMainV2 {
8+
public static void main(String[] args) {
9+
List<String> list = List.of("1", "12","123","1234");
10+
11+
// 문자열을 숫자로 변환
12+
List<Integer> numbers = map(list, s -> Integer.valueOf(s));
13+
System.out.println("numbers = " + numbers);
14+
15+
}
16+
17+
private static List<Integer> map(List<String> list, Function<String, Integer> mapper) {
18+
List<Integer> numbers = new ArrayList<>();
19+
for (String s : list) {
20+
numbers.add(mapper.apply(s));
21+
}
22+
return numbers;
23+
}
24+
}

‎lambda/lambda5/map/MapMainV4.java‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package lambda.lambda5.map;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Function;
6+
7+
import static lambda.lambda5.map.StringToIntegerMapper.map;
8+
9+
public class MapMainV4 {
10+
public static void main(String[] args) {
11+
List<String> list = List.of("1", "12","123","1234");
12+
13+
// 문자열을 숫자로 변환
14+
List<Integer> numbers = map(list, s -> Integer.valueOf(s));
15+
System.out.println("numbers = " + numbers);
16+
17+
}
18+
19+
}

0 commit comments

Comments
 (0)