ArrayListProcessing.java
1    package arraylists;
2    
3    /* 
4    * A program to perform some basic operations on a list of String names. 
5     */
6    
7    import java.util.ArrayList;
8    import java.util.List;
9    
10   public class ArrayListProcessing {
11       public static void main(String[] args)
12       {
13           // POINT A: Add some strings which represent names to an ArrayList.
14           List<String> names = new ArrayList<>();
15           names.add("Holiday, Billie");
16           names.add("Claudel, Camille");
17           names.add("Picasso, Pablo");
18           names.add("Gallen-Kallela, Akseli");
19           names.add("Zotto, Osvaldo");
20           names.add("White, Betty");
21           names.add("Trebek, Alex");
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           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           // POINT C: Use String's join function to create and print a String of
35           // just the first names of the names ArrayList with each
36           // name separated by a comma.
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
42           // list of the last names in the names ArrayList.
43           List<String> lastNamesList = lastNames(names);
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
49           // from the list of names in the names ArrayList.
50   
51           List<String> upperCaseFirstNamesList = upperCaseNames((firstNames(names)));
52           String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList);
53   
54           System.out.println("Uppercase first names: " + upperCaseFirstNames);
55   
56           // POINT F: Print a comma-separated list of all hyphenated last names
57           // from the list of names in the names ArrayList.
58           List<String> hyphenatedNamesList = hyphenatedNames(lastNames(names));
59   
60           String hyphenatedNames = String.join(", ", hyphenatedNamesList);
61           System.out.println("Hyphenated Last Names: " + hyphenatedNames);
62   
63           // POINT G: Print the integer value of the total length of all names
64           // in the names ArrayList.
65           int totalLength = totalNameLength(names);
66           System.out.println("Total length: " + totalLength);
67   
68           // POINT H: Print the integer value of the total length of all
69           // first names in the names ArrayList.
70           int totalLengthFirstName = totalNameLength(firstNames(names));
71           System.out.println("Total first name length: " + totalLengthFirstName);
72   
73   
74           // POINT I: Print the integer value of the product of the length of
75           // all first names in the names ArrayList.
76           int productLengthFirstName = getLengthProduct(firstNames(names));
77           System.out.println("Total first name length product: " + productLengthFirstName);
78       }
79       public static int getLengthProduct(List<String> names)
80       {
81           int total = names.get(0).length();
82           for(int i = 1; i < names.size(); i++)
83           {
84               total *= names.get(i).length();
85           }
86           return total;
87       }
88       public static int totalNameLength(List<String> names){
89           int totalLength = 0;
90           for(String name : names)
91           {
92               totalLength = totalLength + name.length();
93           }
94           return totalLength;
95       }
96       public static List<String> hyphenatedNames(List<String> names)
97       {
98           List<String> hyphenateds = new ArrayList<>();
99           for(String name : names)
100          {
101              if(name.contains("-"))
102              {
103                  hyphenateds.add(name);
104              }
105          }
106          return hyphenateds;
107      }
108  
109      public static List<String> upperCaseNames(List<String> names)
110      {
111          List<String> uppercases = new ArrayList<>();
112          for(String name : names)
113          {
114              uppercases.add(name.toUpperCase());
115          }
116          return uppercases;
117      }
118  
119      private static List<String> lastNames(List<String> names)
120      {
121          List<String> last = new ArrayList<>();
122          for(String lastNames : names)
123          {
124              last.add(lastName(lastNames));
125  
126          }
127          return last;
128      }
129  
130      private static String lastName(String directoryStyleName) {
131          return directoryStyleName.substring(0, directoryStyleName.indexOf(","));
132      }
133  
134      private static List<String> firstNames(List<String> names)
135      {
136          List<String> firsts = new ArrayList<>();
137          for(String name : names){
138              firsts.add(firstName(name));
139          }
140          return firsts;
141  
142      }
143      private static String firstName(String directoryStyleName) {
144          return directoryStyleName.substring(directoryStyleName.indexOf(" ") + 1);
145      }
146  }
147