StreamArrayListProcess.java
1    package arraylist;
2    
3    import java.util.ArrayList;
4    import java.util.List;
5    import java.util.stream.Collectors;
6    
7    public class StreamArrayListProcess {
8    
9        public static void main(String[] args){
10           List<String> names = new ArrayList<>();
11           names.add("Holiday, Billie");
12           names.add("Claudel, Camille");
13           names.add("Picasso, Pablo");
14           names.add("Gallen-Kallela, Akseli");
15           names.add("Zotto, Osvaldo");
16           names.add("Mitchell, Raven");
17           names.add("Barnett, Jacob");
18           names.add("Schlegel, Daniel");
19   
20           List<String> firstNamesList = names.stream()
21                   .map(n -> firstName(n))
22                   .collect(Collectors.toList());
23   
24           System.out.println("First names: ");
25           for (String firstName : firstNamesList) {
26               System.out.println(firstName + "");
27           }
28   
29           String firstNames = names.stream()
30                   .map(n -> firstName(n))
31                   .collect(Collectors.joining(", "));
32   
33           System.out.println("First names: " + firstNames);
34   
35           String lastNames = names.stream()
36                   .map(n -> lastName(n))
37                   .collect(Collectors.joining(", "));
38   
39           System.out.println("Last names: " + lastNames);
40   
41           String upperCaseFirstNames = names.stream()
42                   .map(n -> firstName(n))
43                   .map(n -> n.toUpperCase())
44                   .collect(Collectors.joining(", "));
45   
46           System.out.println("Uppercase first names: " + upperCaseFirstNames);
47   
48           String hyphenatedLastNames = names.stream()
49                   .map(n -> lastName(n))
50                   .filter(n -> n.contains("-"))
51                   .collect(Collectors.joining(", "));
52   
53           System.out.println("Hyphenated first names: " + hyphenatedLastNames);
54   
55           int totalLength = names.stream()
56                   .map(n -> n.length())
57                   .reduce(0, (n1, n2) -> n1 + n2);
58   
59           System.out.println("Total length: " + totalLength);
60   
61           int totalFirstLength= firstNamesList.stream()
62                   .map(n -> n.length())
63                   .reduce(0, (n1, n2) -> n1 + n2);
64   
65           System.out.println("Total First Name length: " + totalFirstLength);
66   
67           int totalProductLength = names.stream()
68                   .map(n -> n.length())
69                   .reduce(-1 , (n1, n2) -> (n1 * n2));
70   
71           System.out.println("Total Product length: " + totalProductLength);
72       }
73   
74       private static String firstName(String directoryStyleName) {
75           String firstName = directoryStyleName.substring(2 + directoryStyleName.indexOf(","));
76           return firstName;
77       }
78   
79       private static String lastName(String directoryStyleName) {
80           String lastName = directoryStyleName.substring(0, directoryStyleName.indexOf(","));
81           return lastName;
82       }
83   }
84