Skip to content

Commit 5d19862

Browse files
committed
add flatMap()
1 parent 6d0c11b commit 5d19862

2 files changed

Lines changed: 105 additions & 2 deletions

File tree

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package com.programcreek.java8.stream;
2+
3+
import java.io.IOException;
4+
import java.nio.charset.StandardCharsets;
5+
import java.nio.file.Files;
6+
import java.nio.file.Path;
7+
import java.nio.file.Paths;
8+
import java.util.ArrayList;
9+
import java.util.List;
10+
import java.util.stream.Stream;
11+
12+
13+
public class Java8FlatMap {
14+
15+
public static void main(String[] args) {
16+
ArrayList<Order> orders = new ArrayList<Order>();
17+
Stream<Item> itemStream = orders.stream().flatMap(order -> order.getItems().stream());
18+
19+
}
20+
21+
public static Stream<Character> convertToCharStream(String s){
22+
ArrayList<Character> list = new ArrayList<Character>();
23+
for(char c: s.toCharArray()){
24+
list.add(c);
25+
}
26+
return list.stream();
27+
}
28+
29+
public static void test() throws IOException{
30+
Path path = Paths.get(null);
31+
Stream<String> lines = Files.lines(path, StandardCharsets.UTF_8);
32+
Stream<String> words = lines.flatMap(line -> Stream.of(line.split(" +")));
33+
}
34+
}
35+
36+
class Order{
37+
String orderId;
38+
ArrayList<Item> items = new ArrayList<Item>();
39+
40+
public Order(String orderId, ArrayList<Item> orderItems) {
41+
super();
42+
this.orderId = orderId;
43+
this.items = orderItems;
44+
}
45+
46+
public String getOrderId() {
47+
return orderId;
48+
}
49+
50+
public void setOrderId(String orderId) {
51+
this.orderId = orderId;
52+
}
53+
54+
public ArrayList<Item> getItems() {
55+
return items;
56+
}
57+
58+
public void setItems(ArrayList<Item> orderItems) {
59+
this.items = orderItems;
60+
}
61+
}
62+
63+
class Item{
64+
String itemId;
65+
String itemName;
66+
67+
public Item(String itemId, String itemName) {
68+
super();
69+
this.itemId = itemId;
70+
this.itemName = itemName;
71+
}
72+
73+
public String getItemId() {
74+
return itemId;
75+
}
76+
77+
public void setItemId(String itemId) {
78+
this.itemId = itemId;
79+
}
80+
81+
public String getItemName() {
82+
return itemName;
83+
}
84+
85+
public void setItemName(String itemName) {
86+
this.itemName = itemName;
87+
}
88+
}
Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.programcreek.java8.stream;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
5+
36
public class Java8WhatIsStream {
47

58
public static void main(String[] args) {
@@ -9,8 +12,20 @@ public static void main(String[] args) {
912
// operations. The following example illustrates an aggregate operation
1013
// using Stream and IntStream:
1114

12-
//int sum = widgets.stream().filter(w -> w.getColor() == RED)
13-
// .mapToInt(w -> w.getWeight()).sum();
15+
// int sum = widgets.stream().filter(w -> w.getColor() == RED)
16+
// .mapToInt(w -> w.getWeight()).sum();
17+
18+
List<String> list = new ArrayList<String>();
19+
list.add("java");
20+
list.add("php");
21+
list.add("python");
22+
23+
list.stream()
24+
.filter(s -> s.length() > 2)
25+
.map(String::toUpperCase)
26+
.sorted()
27+
.forEach(System.out::println);
28+
1429
}
1530

1631
}

0 commit comments

Comments
 (0)