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           names.add("Tepfenhart-Yamada, Emily");
22           names.add("Jingleheimer-Schmidt, John Jacob");
23   
24           //POINT B: Create an ArrayList of just the first names of the names ArrayList. Use a for loop to print out the names, separated by spaces.
25   
26           List<String> firstNamesList = firstNames(names);
27   
28           System.out.print("First names: ");
29           for (String firstName:firstNamesList){
30               System.out.print(firstName+" ");
31           }
32           System.out.println();
33   
34   
35           //POINT C: Use String's join function to create and print a String of just the first names of the names ArrayList with each name separated by a comma.
36   
37           String firstNames = String.join(", ", firstNamesList);
38   
39           System.out.println("First names: "+ firstNames);
40   
41           //POINT D: By analogy from points B and C, print a comma-separated list of the last names in the names ArrayList
42           List<String> lastNamesList = lastNames(names);
43   
44           String lastNames = String.join(", ", lastNamesList);
45   
46           System.out.println("Last names: "+ lastNames);
47   
48           //POINT E: Print a comma-separated list of all uppercase first names from the list of names in the names ArrayList
49           List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names));
50           String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList);
51   
52           System.out.println("Uppercase first names: " + upperCaseFirstNames);
53   
54           //PONT F: Print a comma-separated list of all hyphenated last names from the list of names in the names ArrayList
55           List<String> hyphenatedNamesList = hyphenatedNames(lastNamesList);
56           String hyphenatedNames = String.join(", ", hyphenatedNamesList);
57   
58           System.out.println("Hyphenated last names: " + hyphenatedNames);
59   
60           //POINT G: Print the integer value of the total length of all names in the names ArrayList
61           int totalLength = totalNameLength(names);
62   
63           System.out.println("Total length: " + totalLength);
64   
65           //POINT H: Print the integer value of the total length of all first names in the names ArrayList
66           int totalLengthOfFirstNames = totalNameLength(firstNamesList);
67   
68           System.out.println("Total first name length: " + totalLengthOfFirstNames);
69   
70           //POINT I: Print the integer value of the product of the length of all first names in the names ArrayList.
71           int totalProductOfLength = totalProductOfNameLength(names);
72   
73           System.out.println("Total product of name length: " + totalProductOfLength);
74   
75       }
76   
77       private static String firstName(String directoryStyleNames) {
78   
79           return directoryStyleNames.substring(directoryStyleNames.indexOf(" ") + 1);
80       }
81   
82       private static List<String> firstNames(List<String> names){
83           List<String> firsts = new ArrayList<>();
84           for (String name:names){
85               firsts.add(firstName(name));
86           }
87           return firsts;
88       }
89   
90       private static String lastName(String directoryStyleName){
91           
92           return directoryStyleName.substring(0,directoryStyleName.indexOf(","));
93       }
94   
95       private static List<String> lastNames(List<String> names){
96           List<String> lasts = new ArrayList<>();
97           for (String name:names){
98               lasts.add(lastName(name));
99           }
100          return lasts;
101      }
102  
103      public static List<String> upperCaseNames(List<String> names){
104          List<String> uppercases = new ArrayList<>();
105          for (String name: names){
106              uppercases.add(name.toUpperCase());
107          }
108          return uppercases;
109      }
110  
111      public static List<String> hyphenatedNames(List<String> names) {
112          List<String> hyphenateds = new ArrayList<>();
113          for (String name : names) { //filter
114              if (name.contains("-")) {
115                  hyphenateds.add(name);
116              }
117          }
118          return hyphenateds;
119      }
120  
121      public static int totalNameLength(List<String> names){
122          int totalLength = 0; //accumulator
123          for (String name : names) {
124              totalLength = totalLength + name.length();
125          }
126          return totalLength;
127      }
128  
129      private static int totalProductOfNameLength(List<String> names) {
130          int totalProduct = 1; //accumulator
131          for (String name : names) {
132  
133              totalProduct = totalProduct*name.length();
134          }
135          return totalProduct;
136  
137      }
138  
139  
140  
141  }