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