ArrayListProcessing.java
1        /* 
2        a program to perform some basic operations on a list of string names. 
3         */
4    
5    package arraylistplay;
6    
7    import java.util.ArrayList;
8    import java.util.List;
9    
10       public class ArrayListProcessing {
11       public static void main(String[] args){
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           names.add("Kohei, Clark");
19           names.add("Yehudis, Lim");
20           names.add("Carey, Mariah");
21   
22           List<String> firstNamesList = firstNames(names);
23   
24           System.out.print("First names: ");
25           for (String firstName : firstNamesList) {
26               System.out.print(firstName + " ");
27           }
28           System.out.println();
29   
30           String firstNames = String.join(", ", firstNamesList);
31           System.out.println("First names: " + firstNames);
32   
33           List<String> lastNamesList = lastNames(names);
34           String lastNames = String.join(", ", lastNamesList);
35           System.out.println("Last names: " + lastNames);
36   
37           List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names));
38           String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList);
39           System.out.println("Uppercase first names: " + upperCaseFirstNames);
40   
41           List<String> hyphenatedLastNamesList = hyphenatedNames(names);
42           String hyphenatedLasts = String.join(", ", hyphenatedLastNamesList);
43           System.out.println("Hyphenated last names: " + hyphenatedLasts);
44   
45           int totalLength = totalNameLength(names);
46           System.out.println("Total length: " + totalLength);
47   
48           int totalFirstsLength = totalNameLength(firstNames(names));
49           System.out.println("Total first names length: " + totalFirstsLength);
50   
51           int namesProduct = namesProduct(names);
52           System.out.println("Names product: " + namesProduct);
53       }
54   
55       private static List<String> firstNames(List<String> names) {
56           List<String> firsts = new ArrayList<>();
57           for (String name : names) {
58               firsts.add(firstName(name));
59           }
60           return firsts;
61       }
62   
63       private static List<String> lastNames(List<String> names) {
64           List<String> lasts = new ArrayList<>();
65           for (String name : names) {
66               lasts.add(lastName(name));
67           }
68           return lasts;
69       }
70   
71       private static List<String> upperCaseNames(List<String> names) {
72           List<String> uppercases = new ArrayList<>();
73           for (String name : names){
74               uppercases.add(name.toUpperCase());
75           }
76           return uppercases;
77       }
78   
79       public static List<String> hyphenatedNames(List<String> names){
80           List<String> hyphenateds = new ArrayList<>();
81           for (String name : names){
82               if (name.contains("-")) {
83                   hyphenateds.add(name);
84               }
85           }
86           return hyphenateds;
87       }
88   
89       public static int totalNameLength(List<String> names){
90           int totalLength = 0;
91           for (String name : names){
92               totalLength = totalLength + name.length();
93           }
94           return totalLength;
95       }
96   
97       public static int namesProduct(List<String> names){
98           int namesprod = 1;
99           for (String name : names){
100              namesprod = namesprod * name.length();
101          }
102          return namesprod;
103      }
104  
105      private static String firstName(String directoryStyleName) {
106          int cp = directoryStyleName.indexOf(", ");
107          int last = directoryStyleName.length();
108          String first = directoryStyleName.substring(cp+2,last);
109          return first;
110      }
111  
112      private static String lastName(String directoryStyleName) {
113          int cp = directoryStyleName.indexOf(", ");
114          String last = directoryStyleName.substring(0,cp);
115          return last;
116      }
117  }
118