ArrayListProcessing.java
1    /* 
2     * A program to perform some basic operations on a list of string names. 
3     */
4    
5    package arraylistplay;
6    
7    import java.util.ArrayList;
8    import java.util.List;
9    
10   public class ArrayListProcessing {
11       public static void main (String[] args){
12           // POINT A: add some strings which represent names to an arraylist.
13           List<String> names = new ArrayList<>();
14           names.add("Holiday, Billie");
15           names.add("Claudel, Camille");
16           names.add("Picasso, Pablo");
17           names.add("Gallen-Kallela, Akseli");
18           names.add("Zotton, Osvaldo");
19           names.add("Harry, Khant");
20           names.add("Roronoa, Zoro");
21           names.add("Monkey-D, Luffy");
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 by spaces.
25           List<String> firstNamesList = firstNames(names);
26           System.out.print("First names: ");
27           for (String firstName : firstNamesList) {
28               System.out.print(firstName + " ");
29           }
30           System.out.println();
31   
32           //Point C: Use String's join function to create and print a String of
33           //         Just the first names of the names ArrayList with each name separated by a comma.
34           String firstNames = String.join(", ", firstNamesList);
35           System.out.println("First names: " + firstNames);
36   
37           //Point D: By analogy from points B and C, print a comma-separated
38           //         List of the last names in the names ArrayList.
39           List<String> lastNamesList = lastNames(names);
40           System.out.print("Last names: ");
41           for (String lastName : lastNamesList){
42               System.out.print(lastName+ " ");
43           }
44           System.out.println();
45           String lastNames = String.join(", ", lastNamesList);
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           List<String> upperCaseFirstNamesList = upperCaseName(firstNamesList);
51           String upperCaseFirstNames = String.join(", ",upperCaseFirstNamesList);
52           System.out.println("UpperCaseFirstNames: " + upperCaseFirstNames);
53   
54           //Point F: Print a comma-separated list of all hyphenated last names
55           //         from the list of names in the names ArrayList.
56           List<String> hyphenatedNamesList = hyphenatedNames(lastNamesList);
57           String hyphenatedNames = String.join(", ",hyphenatedNamesList);
58           System.out.println("Hyphenated names: " + hyphenatedNames);
59   
60           //Point G: Print the integer value of the total length of all
61           //         in the list of names in the names ArrayList.
62           int totalLength = totalNameLength(names);
63           System.out.println("Total length: " + totalLength);
64   
65           //Point H: Print the integer value of the total length of
66           //         all first name in the names ArrayList.
67           int FirstNameLength = totalNameLength(firstNamesList);
68           System.out.println("FirstNames length: " + FirstNameLength);
69   
70           // POINT I: Print the integer value of the product of the length of
71           //          all first names in the names ArrayList.
72           int FirstNameProduct = totalNameProduct(firstNamesList);
73           System.out.println("FirstNames product: " + FirstNameProduct);
74       }
75   
76       private static List<String> lastNames(List<String> names) {
77           List<String> lasts = new ArrayList<>();
78           for (String name : names){
79               lasts.add(lastName(name));
80           }
81           return lasts;
82       }
83   
84       private static List<String> firstNames(List<String> names) {
85           List<String> firsts = new ArrayList<>();
86           for (String name : names) {
87               firsts.add(firstName(name));
88           }
89           return firsts;
90       }
91   
92       public static List<String> hyphenatedNames(List<String> names){
93           List<String> hyphenateds = new ArrayList<>();
94           for (String name : names){
95               if (name.contains("-")){
96                   hyphenateds.add(name);
97               }
98           }
99           return hyphenateds;
100      }
101  
102      public static List<String> upperCaseName (List<String> names){
103          List<String> uppercases = new ArrayList<>();
104          for (String name : names){
105              uppercases.add(name.toUpperCase());
106          }
107          return uppercases;
108      }
109  
110      public static int totalNameLength(List<String> names){
111          int totalLength = 0;
112          for (String name : names){
113              totalLength = totalLength + name.length();
114          }
115          return totalLength;
116      }
117  
118      private static int totalNameProduct(List<String> names) {
119          int totalLength = 1;
120          for (String name : names){
121              totalLength = totalLength * name.length();
122          }
123          return totalLength;
124      }
125  
126      private static String firstName(String name) {
127          String firstName = name.substring(name.indexOf(",")+2);
128          return firstName;
129      }
130  
131      private static String lastName(String directoryStyleName) {
132          String lastName = directoryStyleName.substring(0,directoryStyleName.indexOf(","));
133          return lastName;
134      }
135  }
136