Skip to content

Commit e1fb8d5

Browse files
committed
class 26 29 Streams advanced methods
1 parent 4e0d379 commit e1fb8d5

3 files changed

Lines changed: 46 additions & 2 deletions

File tree

modules/src/main/java/com/platzi/functional_student_practice/_15_streams/C23Y24Streams.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.platzi.functional_student_practice._15_streams;
22

3-
import com.platzi.functional_teacher_theory._06_reference_operator.NombresUtils;
3+
import com.platzi.functional_teacher_theory.util.Utils;
44

55
import java.util.Collections;
66
import java.util.List;
@@ -13,7 +13,7 @@ public static void main(String[] args) {
1313
System.out.println("\nCLASS 23\n");
1414

1515
// 1. forma comun de trabajar sobre listas, strings y collections
16-
List<String> courseList = NombresUtils.getList("Java!", "JavaScript", "FrontEnd", "Backend", "FullStack");
16+
List<String> courseList = Utils.getListOf("Java!", "JavaScript", "FrontEnd", "Backend", "FullStack");
1717
for (String course : Collections.unmodifiableList(courseList)) {
1818
String newCourseName = course.toLowerCase().replace("!", "!!!");
1919
System.out.println("1. Cursos bucle sobre lista: " + newCourseName);
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.platzi.functional_student_practice._15_streams;
2+
3+
import java.util.stream.Collectors;
4+
import java.util.stream.IntStream;
5+
import java.util.stream.Stream;
6+
7+
public class C26Y29TypeStream {
8+
public static void main(String[] args) {
9+
System.out.println("\n////////////////////////////////////////////////////////////////////////////////////");
10+
System.out.println("\nCLASS 26\n");
11+
12+
IntStream infiniteStream = IntStream.iterate(0, x -> x + 1); //se genera un stream infinito
13+
IntStream limitedStream = infiniteStream.limit(1000); // se limita el stream para poder trabajarlo
14+
boolean isAllEven = limitedStream
15+
.filter(x -> x % 2 == 0)
16+
.allMatch(x -> x % 2 == 0); // valida que todos los elementos cumplan con una condición. util para validar existencia de datos, limites, etc
17+
System.out.println("all even? " + isAllEven);
18+
19+
IntStream infiniteStream2 = IntStream.iterate(0, x -> x + 1);
20+
System.out.println("paralel sum: "+infiniteStream2
21+
.limit(1000000)
22+
.parallel() // sirve para distribuir todos los calculos del stream distribuidos automaticamente en todos los procesadores del equipo
23+
.filter(x -> x % 2 == 0)
24+
.reduce(0, Integer::sum));
25+
26+
System.out.println("\n////////////////////////////////////////////////////////////////////////////////////");
27+
System.out.println("\nCLASS 29\n");
28+
29+
String pairNumbersAsIndividualString = IntStream.iterate(0, x -> x + 1)
30+
.limit(1000)
31+
.filter(x -> x % 2 == 0)
32+
.boxed() // transforma el IntStream a un Stream<Integer>
33+
.map(Object::toString) // transformamos a un Stream<String> para poder aplicar el map siguiente
34+
.collect(Collectors.joining(",","[","]")); // transformamos el stream para que entregue un String con todos los datos separados con "," entre corchetes
35+
System.out.println("List as collected individual String: " + pairNumbersAsIndividualString);
36+
String[] listAsStrings = pairNumbersAsIndividualString.substring(1, pairNumbersAsIndividualString.length() - 2).split(",");
37+
System.out.println("count: " + Stream.of(listAsStrings).count());
38+
System.out.println("sum: " + Stream.of(listAsStrings).map(Integer::valueOf).reduce(0, Integer::sum));
39+
40+
}
41+
}

modules/src/main/java/com/platzi/functional_teacher_theory/util/Utils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import java.util.List;
55

66
public class Utils {
7+
private Utils() {
8+
}
9+
710
@SafeVarargs
811
public static <T> List<T> getListOf(T... items) {
912
return Arrays.asList(items);

0 commit comments

Comments
 (0)