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   
12       public static void main(String[] args) {
13   
14           // POINT A: Add some strings which represent names to an ArrayList.
15           List<String> names = new ArrayList<>();
16           names.add("Holiday, Billie");
17           names.add("Claudel, Camille");
18           names.add("Picasso, Pablo");
19           names.add("Gallen-Kallela, Akseli");
20           names.add("Zotto, Osvaldo");
21   
22   
23   // POINT B: Create an ArrayList of just the first names of the names
24   //          ArrayList. Use a for loop to print out the names, separated
25   // by spaces.
26   
27           List<String> firstNamesList = firstNames(names);
28   
29           System.out.print("First names: ");
30           for (String firstName : firstNamesList){
31               System.out.print(firstName + " ");
32           }
33           System.out.println();
34   
35   // POINT C: Use String’s join function to create and print a String of
36   //          just the first names of the names ArrayList with each
37   //          name separated by a comma.
38   
39           String firstNames = String.join(", ", firstNamesList);
40   
41           System.out.println("First names: " + firstNames);
42   
43   // POINT D: By analogy from points B and C, print a comma-separated
44   //          list of the last names in the names ArrayList.
45   
46           List<String> lastNamesList = lastNames(names);
47   
48           String lastNames = String.join(", ", lastNamesList);
49   
50           System.out.println("Last names: " + lastNames);
51   
52   // POINT E: Print a comma-separated list of all uppercase first names
53   //          from the list of names in the names ArrayList.
54   
55           List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names));
56           String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList);
57   
58           System.out.println("Uppercase first names: " + upperCaseFirstNamesList);
59   
60   // POINT F: Print a comma-separated list of all hyphenated last names
61   //          from the list of names in the names ArrayList.
62   
63           List<String> hyphenatedLastNamesList = hyphenatedNames(lastNames(names));
64           String hyphenatedLastNames = String.join(", ", hyphenatedLastNamesList);
65   
66           System.out.println("hyphenated last names: " + hyphenatedLastNamesList);
67   
68   // POINT G: Print the integer value of the total length of all names
69   //          in the names ArrayList.
70   
71           int totalLength = totalNameLength(names);
72   
73           System.out.println("Total length: " + totalLength);
74   
75   // POINT H: Print the integer value of the total length of all
76   //          first names in the names ArrayList.
77   
78           int totalfirstnameslength =totalNameLength(firstNames(names));
79   
80           System.out.println("Total first names length: " + totalfirstnameslength);
81   
82   // POINT I: Print the integer value of the product of the length of
83   //          all first names in the names ArrayList.
84   
85           int totallastnameslength =totalNameLength(lastNames(names));
86   
87           System.out.println("Total last names length: " + totallastnameslength);
88   
89       }
90   
91       private static String firstName(String directoryStyleName) {
92           int p1 = directoryStyleName.indexOf(" ");
93           return directoryStyleName.substring(p1 + 1);
94       }
95   
96       private static String lastName(String directoryStyleName) {
97           int p1 = directoryStyleName.indexOf(",");
98           return directoryStyleName.substring(0 , p1);
99       }
100  
101      private static List<String> firstNames(List<String> names) {
102          List<String> firsts = new ArrayList<>();
103          for (String name : names) {
104              firsts.add(firstName(name));
105          }
106          return firsts;
107      }
108  
109      private static List<String> lastNames(List<String> names) {
110          List<String> lasts = new ArrayList<>();
111          for (String name : names) {
112              lasts.add(lastName(name));
113          }
114          return lasts;
115      }
116  
117      public static List<String> upperCaseNames(List<String> names){
118          List<String> uppercases = new ArrayList<>();
119          for (String name : names){
120              uppercases.add(name.toUpperCase()); }
121          return uppercases;
122      }
123  
124      public static List<String> hyphenatedNames(List<String> names){
125          List<String> hyphenateds = new ArrayList<>();
126          for (String name : names){
127              if (name.contains("-")) { hyphenateds.add(name);
128              } }
129          return hyphenateds;
130      }
131  
132      public static int totalNameLength(List<String> names){
133          int totalLength = 0;
134          for (String name : names){
135              totalLength = totalLength + name.length(); }
136          return totalLength;
137      }
138  
139  }