-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolutionsStreams
37 lines (30 loc) · 1.78 KB
/
SolutionsStreams
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
30
31
32
33
34
35
36
37
System.out.println("Part 4");
ArrayList<ChapterMembers.Member> members = ChapterMembers.getDataset();
// Print all the names
members.stream().forEach(x -> System.out.println(x.getName()));
// Calculate the total number of cookies and print it
int totalCookies = members.stream()
.mapToInt(x -> x.getCookies().get())
.sum();
System.out.println("Total number of cookies is: " + totalCookies);
// Filter on members with a pet, sort them based on squad name and print their name
members.stream()
.filter(x -> x.isHasPets())
.sorted((x, y) -> x.getSquad().compareTo(y.getSquad()))
.forEach(x -> System.out.println("Name: " + x.getName()));
// Sort on name, delete members with an odd id and print the favorite animals
members.stream()
.sorted((x, y) -> x.getName().compareTo(y.getName()))
.filter(x -> x.getId() % 2 != 0)
.forEach(x -> System.out.println("Favorite animal: " + x.getAnimal().orElse(ChapterMembers.FavoriteAnimal.NONE)));
// Double all the id's, remove members without animals, divide all the numbers of cookies by 14 and print these as floating values
members.stream()
.map(x -> {
int doubleId = x.getId()*2;
return new ChapterMembers.Member(x.getName(), x.getSquad(), doubleId, x.getCookies().get(), x.getAnimal().orElse(null), x.isHasPets());
})
.forEach(x -> {
System.out.println("Name: " + x.getName());
float cookies = (float) x.getCookies().get()/14;
System.out.println("Number of cookies: " + cookies);
});