StreamArrayListProcessing.java
|
1
2 package arraylistplay.arraylists;
3
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.stream.Collectors;
7
8 public class StreamArrayListProcessing {
9 public static void main(String[] arg) {
10
11 //Point A
12 List<String> names = new ArrayList<>();
13 names.add("Holiday, Billie");
14 names.add("Claudel, Camille");
15 names.add("Picasso, Pablo");
16 names.add("Gallen-kallela, Akseli");
17 names.add("Zotto, Osvaldo");
18
19
20 //Point B
21 List<String> firstNamesList = names.stream()
22 .map(n -> firstName(n))
23 .collect(Collectors.toList());
24 System.out.println("First names: ");
25 for (String firstName : firstNamesList){
26 System.out.println(firstName + " ");
27 }System.out.println();
28
29 //Point C
30 String firstNames = names.stream()
31 .map(n -> firstName(n))
32 .collect(Collectors.joining(", "));
33 System.out.println("First names: " + firstNames);
34 System.out.println();
35
36 //Point D
37 List<String> lastNamesList = names.stream()
38 .map(n -> lastName(n))
39 .collect(Collectors.toList());
40 System.out.println("Last names: ");
41 for (String lastName : lastNamesList){
42 System.out.println(lastName + " ");
43 }System.out.println();
44
45 String lastNames = names.stream()
46 .map(n -> lastName(n))
47 .collect(Collectors.joining(", "));
48 System.out.println("Last names: " + lastNames);
49
50 //Point E
51 String upperCaseFirstNames = names.stream()
52 .map(n -> firstName(n))
53 .map(n -> n.toUpperCase())
54 .collect(Collectors.joining(", "));
55 System.out.println("Uppercase first names: " + upperCaseFirstNames);
56
57 //Point F
58 String hyphenatedLastNames = names.stream()
59 .map(n -> lastName(n))
60 .filter(n -> n.contains("-"))
61 .collect(Collectors.joining(", "));
62 System.out.println("hyphenateds names: " + hyphenatedLastNames);
63
64 //Point G
65 int totalLength = names.stream()
66 .map(n -> n.length())
67 .reduce(0, (n1, n2) -> n1 + n2);
68 System.out.println("Total length: " + totalLength);
69
70 //Point H
71 int totalfirstLength = names.stream()
72 .map(n -> n.length())
73 .reduce(0, (n1, n2) -> n1 + n2);
74 System.out.println("first name Total length: " + totalfirstLength);
75
76 //Point I
77 double totalProduct= names.stream()
78 .map(n-> n.length())
79 .reduce(1,(n1,n2)-> n1 * n2);
80 System.out.println("Total Product:"+ totalProduct);
81 }
82
83 private static String firstName(String directoryStyleName) {
84 int commaPosition = directoryStyleName.indexOf(",");
85 return directoryStyleName.substring(commaPosition + 2);
86 }
87 private static String lastName(String directoryStyleName) {
88 int commaPosition = directoryStyleName.indexOf(",");
89 return directoryStyleName.substring(0, commaPosition);
90 }
91 }
92
93