Skip to content

Commit 700d9f3

Browse files
committed
feat(collections-lambda): Seção de lambda com collections.
Criação da seção com exemplos da utilização de Lambda e Streams em Collections. Ref. Issue #39
1 parent 69e546e commit 700d9f3

File tree

6 files changed

+157
-0
lines changed

6 files changed

+157
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
:java-package: src/org/j6toj8/collections
2+
:section-java-package: ../../../{java-package}
3+
4+
=== Diamond Operator (Operador Diamante)
5+
6+
.Objetivo
7+
--------------------------------------------------
8+
Develop code that iterates a collection, filters a collection, and sorts a collection by using lambda expressions
9+
-
10+
Desenvolver código que itera uma coleção, filtra um coleção, e classifica em ordem uma coleção utilizando expressões lambda
11+
--------------------------------------------------
12+
13+
As seções de *Expressões Lambda* e *Streams* já possuem bastante conteúdo sobre os tópicos desse objetivo, e as explicações em detalhes podem ser encontradas lá. Aqui serão apresentados apenas exemplos adicionais especificamente em coleções (__Collections__), pois alguns exemplos das outras exceções utilizam outros tipos de __Streams__.
14+
15+
. É possível iterar diretamente sobre uma coleção utilizando forEach.
16+
+
17+
[source,java,indent=0]
18+
.{java-package}/lambda/CollectionsLambda_ForEach.java
19+
----
20+
include::{section-java-package}/lambda/CollectionsLambda_ForEach.java[tag=code]
21+
----
22+
+
23+
.Saída no console
24+
[source,console]
25+
----
26+
1
27+
6
28+
7
29+
2
30+
9
31+
----
32+
33+
. É possível filtrar a coleção.
34+
+
35+
[source,java,indent=0]
36+
.{java-package}/lambda/CollectionsLambda_Filter.java
37+
----
38+
include::{section-java-package}/lambda/CollectionsLambda_Filter.java[tag=code]
39+
----
40+
+
41+
.Saída no console
42+
[source,console]
43+
----
44+
6
45+
7
46+
9
47+
----
48+
49+
. É possível classificar em ordem a coleção.
50+
+
51+
[source,java,indent=0]
52+
.{java-package}/lambda/CollectionsLambda_Sort.java
53+
----
54+
include::{section-java-package}/lambda/CollectionsLambda_Sort.java[tag=code]
55+
----
56+
+
57+
.Saída no console
58+
[source,console]
59+
----
60+
1
61+
2
62+
6
63+
7
64+
9
65+
----
66+
67+
. É possível combinar as operações.
68+
+
69+
[source,java,indent=0]
70+
.{java-package}/lambda/CollectionsLambda_Combined.java
71+
----
72+
include::{section-java-package}/lambda/CollectionsLambda_Combined.java[tag=code]
73+
----
74+
+
75+
.Saída no console
76+
[source,console]
77+
----
78+
26
79+
34
80+
34
81+
54
82+
----
83+
84+
****
85+
86+
* Using Streams
87+
+
88+
Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (p. 185). Wiley. Edição do Kindle.
89+
90+
* https://www.baeldung.com/java-8-streams[The Java 8 Stream API Tutorial.]
91+
92+
****

ch08-java-collections.asc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
== Java Collections
33

44
include::book/08-java-collections/sections/01-diamond.asc[]
5+
include::book/08-java-collections/sections/02-collections-lambda.asc[]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.j6toj8.collections.lambda;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class CollectionsLambda_Combined {
7+
8+
public static void main(String[] args) {
9+
// tag::code[]
10+
List<Integer> list = Arrays.asList(1, 6, 7, 2, 9, 54, 13, 87, 23, 97, 34, 17, 34, 89, 35, 26);
11+
list.stream()
12+
.sorted()
13+
.filter(n -> n > 10)
14+
.filter(n -> n % 2 == 0)
15+
.forEach(System.out::println);
16+
// end::code[]
17+
}
18+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.j6toj8.collections.lambda;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class CollectionsLambda_Filter {
7+
8+
public static void main(String[] args) {
9+
// tag::code[]
10+
List<Integer> list = Arrays.asList(1, 6, 7, 2, 9);
11+
list.stream()
12+
.filter(n -> n > 2)
13+
.forEach(System.out::println);
14+
// end::code[]
15+
}
16+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.j6toj8.collections.lambda;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class CollectionsLambda_ForEach {
7+
8+
public static void main(String[] args) {
9+
// tag::code[]
10+
List<Integer> list = Arrays.asList(1, 6, 7, 2, 9);
11+
list.forEach(System.out::println);
12+
// end::code[]
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.j6toj8.collections.lambda;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class CollectionsLambda_Sort {
7+
8+
public static void main(String[] args) {
9+
// tag::code[]
10+
List<Integer> list = Arrays.asList(1, 6, 7, 2, 9);
11+
list.stream()
12+
.sorted()
13+
.forEach(System.out::println);
14+
// end::code[]
15+
}
16+
}

0 commit comments

Comments
 (0)