ArrayListProcessing.java
1    /* 
2     *A program to perform some basic operations on a list of String names 
3     */
4    package arraylistplay;
5    
6    import java.util.ArrayList;
7    import java.util.List;
8    
9    public class ArrayListProcessing {
10   
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("Zotto, Osvaldo");
19           names.add("MinSoe, Myat");
20           names.add("Kyaw, Aung-Khant");
21           names.add("Aung, KoKo");
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           System.out.print("First names: ");
28           for (String firstName : firstNamesList) {
29               System.out.print(firstName + " ");
30           }
31           System.out.println();
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
34           //          name separated by a comma.
35           String firstNames = String.join(", ", firstNamesList);
36   
37           System.out.println("First names: " + firstNames);
38           //POINT D: By analogy from points B and C, print a comma-separated
39           //          list of the last names in the names ArrayList
40           List<String> lastNameList = lastNames(names);
41           System.out.print("Last names: ");
42           for (String lastName : lastNameList) {
43               System.out.print(lastName + " ");
44           }
45           System.out.println();
46           String lastNames = String.join(", ", lastNameList);
47   
48           System.out.println("First names: " + lastNames);
49           // POINT E: Print a comma-separated list of all uppercase first names
50           //           from the list of names in the names ArrayList.
51           List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names));
52           String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList);
53           System.out.println("Uppercase first names: " + upperCaseFirstNames);
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(names);
57           String hyphenatedNames = String.join(",", hyphenatedNamesList);
58           System.out.println("Hyphenated Names: " + hyphenatedNames);
59           // POINT G: Print the integer value of the total length of all names
60           //          in the names ArrayList.
61           int totalLength = totalNameLength(names);
62           System.out.println("Total length: " + totalLength);
63           // POINT H: Print the integer value of the total length of all
64           //          first names in the names ArrayList.
65           int totalFirstNamesLength = totalFirstNameLength(names);
66           System.out.println("Total First Name length: " + totalFirstNamesLength);
67           // POINT I: Print the integer value of the product of the length of
68           //          all first names in the names ArrayList.
69           int totalProduct = productOfNameLengths(names);
70           System.out.println("Total Product of Name Length: " +totalProduct);
71       }
72   
73       private static List<String> firstNames(List<String> names) {
74           List<String> firsts = new ArrayList<>();
75           for (String name : names) {
76               firsts.add(firstName(name));
77           }
78           return firsts;
79       }
80   
81       private static String firstName(String directoryStyleName) {
82           int commaPosition = directoryStyleName.indexOf(",");
83           String firstName = directoryStyleName.substring(2 + commaPosition);
84           return firstName;
85       }
86   
87       private static List<String> lastNames(List<String> names) {
88           List<String> lasts = new ArrayList<>();
89           for (String name : names) {
90               lasts.add(lastName(name));
91           }
92           return lasts;
93       }
94   
95       private static String lastName(String directoryStyleName) {
96           int commaPosition = directoryStyleName.indexOf(",");
97           String lastName = directoryStyleName.substring(0, commaPosition);
98           return lastName;
99       }
100  
101      public static List<String> upperCaseNames(List<String> names) {
102          List<String> uppercases = new ArrayList<>();
103          for (String name : names) {
104              uppercases.add(name.toUpperCase());
105          }
106          return uppercases;
107      }
108      public static List<String> hyphenatedNames(List<String> names){
109          List<String> hyphenateds = new ArrayList<>();
110          for (String name : names){
111              if (name.contains("-")) {
112                  hyphenateds.add(name);
113              }
114          }
115          return hyphenateds;
116      }
117      public static int totalNameLength(List<String> names){
118          int totalLength = 0;
119          for (String name : names){
120              totalLength = totalLength + name.length();
121          }
122          return totalLength;
123      }
124      public static int totalFirstNameLength(List<String> names){
125          int totalFirstNameLength = 0;
126          for (String name : firstNames(names)){
127              totalFirstNameLength = totalFirstNameLength + name.length();
128          }
129          return totalFirstNameLength;
130      }
131      public static int productOfNameLengths(List<String> names){
132          int totalProduct = 1;
133          for(String name : names){
134          totalProduct= totalProduct*name.length();
135          }
136      return totalProduct;
137      }
138  }
139