ArrayListProcessing.java
1    // a program to perform some basic operations on a list of string names
2    package arraylists;
3    import java.util.ArrayList;
4    import java.util.List;
5    
6    import static java.lang.System.out;
7    
8    public class ArrayListProcessing {
9        public static void main(String[] args) {
10   
11           //point A: Add some strings which represent names to an ArrayList
12   
13           List<String> names = new ArrayList<>();
14           names.add("Holliday, Billie");
15           names.add("Claudel, Camille");
16           names.add("Picasso, Pablo");
17           names.add("Gallen-Kallela, Akseli");
18           names.add("Zotto, Osvaldo");
19           names.add("Walker, Jeremy");
20           names.add("Roosevelt, Teddy");
21   
22           //point B: create an ArrayList of just the first names of the names ArrayLIst
23           //Use a for loop to print out the names, separated by spaces
24   
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           //paint C: use String's join function to create and print a string of just the first names of the names
36           //Arraylist with each 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
42           //print a comma separated list of the last names in the Arraylist
43           List<String> lastNamesList = lastNames(names);
44   
45           System.out.print("last names: ");
46           for (String lastName : lastNamesList) {
47               System.out.print(lastName + "");
48           }
49           System.out.println();
50   
51   
52           String lastNames = String.join(", ", lastNamesList);
53   
54           System.out.println("lastnames: " + lastNames);
55   
56   
57           //point E: Print a comma separated list of all hyphenated last names from the list
58           //of names in the names arraylist
59           List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names));
60           String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList);
61   
62           System.out.println("uppercase first names: " + upperCaseFirstNames);
63   
64           //point F: print a comma separated list of hyohenated last names from the names Arraylist
65           List<String> hyphenatedLastNamesList = hyphenatedNames(lastNames(names));
66           String hyphenatedLastNames = String.join(", ", hyphenatedLastNamesList);
67   
68           System.out.println("hyphenated last names: " + hyphenatedLastNames);
69           //point G: print the integer value of the total length of all first names
70           int totalLength = totalNameLength(names);
71           System.out.println("Total length: " + totalLength);
72   
73           //point H: Print the integer value of the total length of all first names
74           int firstNameTotalLength = totalNameLength(firstNamesList);
75           System.out.println("Total length fist names: " + firstNameTotalLength);
76   
77           //point I: print the integer value of the product of the length of all first names
78           int lastNameTotalLength = totalNameLength(lastNamesList);
79           System.out.println("Total length fist names: " + lastNameTotalLength);
80   
81       }
82   
83       private static List<String> firstNames(List<String> names) {
84           List<String> firsts = new ArrayList<>();
85           for (String name : names) {
86               firsts.add(firstName(name));
87           }
88           return firsts;
89       }
90   
91       private static String firstName(String directoryStyleName) {
92           int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
93           return directoryStyleName.substring(directoryStyleNameCommaPosition + 2);
94       }
95   
96       private static String lastName(String directoryStyleName) {
97           int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
98           return directoryStyleName.substring(0, directoryStyleNameCommaPosition);
99       }
100  
101      private static List<String> lastNames(List<String> names) {
102          List<String> lasts = new ArrayList<>();
103          for (String name : names) {
104              lasts.add(lastName(name));
105          }
106          return lasts;
107      }
108      public static List<String> upperCaseNames(List<String> names){
109          List<String> uppercases = new ArrayList<>();
110          for (String name : names){
111              uppercases.add(name.toUpperCase());
112          }
113          return uppercases;
114      }
115      public static List<String> hyphenatedNames(List<String> names){
116          List<String> hyphenateds = new ArrayList<>();
117          for (String name : names){
118              if (name.contains("-")){
119                  hyphenateds.add(name);
120              }
121          }
122          return hyphenateds;
123      }
124      public static int totalNameLength(List<String> names){
125          int totalLength = 0;
126          for (String name : names){
127              totalLength = totalLength + name.length();
128          }
129          return totalLength;
130      }
131  
132  }