Using stream of streams and flatmapping it to concat multiple streams
Transcribed from the original LinkedIn image post.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Stream;
class Day22 {
public static void main(String[] args) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
List<String> publicHolidaysOfBD = List.of("16/02/2021", "21/02/2021", "14/04/2021", "17/03/2021");
List<String> publicHolidaysOfUS = List.of("01/01/2021", "17/03/2021", "04/07/2021", "14/02/2021");
List<String> publicHolidaysOfCA = List.of("01/01/2021", "20/04/2021", "01/07/2021", "17/03/2021");
Stream<Stream<String>> streamConcat = Stream.of(
publicHolidaysOfCA.stream(),
publicHolidaysOfBD.stream(),
publicHolidaysOfUS.stream()
);
streamConcat
.flatMap(Function.identity())
.map(convertToLocalDate(dateTimeFormatter))
.forEach(System.out::println);
}
static Function<String, LocalDate> convertToLocalDate(DateTimeFormatter dateTimeFormatter) {
return (date -> LocalDate.parse(date, dateTimeFormatter));
}
}
|
The original LinkedIn graphic is preserved below.
