StreamArrayListProcessing.java
|
1 /*
2 * A program to perform some basic op. on a list of Strings using Java streams
3 */
4
5 package arraylists;
6
7 import java.util.ArrayList;
8 import java.util.List;
9 import java.util.stream.Collectors;
10
11 public class StreamArrayListProcessing {
12
13 private static String firstName(String directoryStyleName) {
14 int firstName = directoryStyleName.length();
15 int index = 0;
16 index = directoryStyleName.indexOf(" ");
17 directoryStyleName = directoryStyleName.substring(index+1,firstName);
18 return directoryStyleName;
19 }
20
21 private static String lastName(String directoryStyleName) {
22 int lastName = directoryStyleName.length();
23 int index = 0;
24 index = directoryStyleName.indexOf(",");
25 directoryStyleName = directoryStyleName.substring(0,index);
26 return directoryStyleName;
27 }
28
29 public static void main(String[] args){
30
31 //POINT A
32
33 List<String> names = new ArrayList<>();
34 names.add("Holiday, Billie");
35 names.add("Claudel, Camille");
36 names.add("Picasso, Pablo");
37 names.add("Gallen-Kallela, Akseli");
38 names.add("Zotto, Osvaldo");
39 names.add("Took-Baggins, Belladonna");
40 names.add("Grey, Gandalf");
41
42 //POINT B
43
44 List<String> firstNamesList = names.stream()
45 .map(n -> firstName(n))
46 .collect(Collectors.toList());
47
48 System.out.print("First names: ");
49 for (String firstName : firstNamesList){
50 System.out.print(firstName + " ");
51 }
52 System.out.println();
53
54 //POINT C
55
56 String firstNames = names.stream()
57 .map(n -> firstName(n))
58 .collect(Collectors.joining(", "));
59
60 System.out.println("First names: " + firstNames);
61
62 //POINT D
63
64 String lastNames = names.stream()
65 .map(n -> lastName(n))
66 .collect(Collectors.joining(", "));
67
68 System.out.println("Last names: " + lastNames);
69
70 //POINT E
71
72 String upperCaseFullNames = names.stream()
73 .map(n -> firstName(n))
74 .map(n -> n.toUpperCase())
75 .collect(Collectors.joining(", "));
76
77 System.out.println("Uppercase first names: " + upperCaseFullNames);
78
79 //POINT F
80
81 String hyphenatedLastNames = names.stream()
82 .map(n -> lastName(n))
83 .filter(n -> n.contains("-"))
84 .collect(Collectors.joining(", "));
85
86 System.out.println("Hyphenated last names: " + hyphenatedLastNames);
87
88 //POINT G
89
90 int totalLength = names.stream()
91 .map(n -> n.length())
92 .reduce(0, (n1, n2) -> n1 + n2);
93
94 System.out.println("Total length: " + totalLength);
95
96 //POINT H
97
98 int firstNameLength = names.stream()
99 .map(n -> firstName(n))
100 .map(n -> n.length())
101 .reduce(0, (n1, n2) -> n1 + n2);
102
103 System.out.println("Total first name length: " + firstNameLength);
104
105 //POINT I
106
107 int productOfLength = names.stream()
108 .map(n -> n.length())
109 .reduce(1, (n1, n2) -> n1 * n2);
110
111 System.out.println("Product of length: " + productOfLength);
112
113 }
114
115 }
116