ArrayListProcessing.java
1    /* 
2     * a program to perform some basic operations on a list of string names. 
3     */
4    
5    package arraylists;
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("Ibanez, Diego");
19           names.add("Bonilla, Walter");
20           names.add("Gayguy, Christopher");
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  
119