ArrayListProcessing.java
1    /* 
2    A program to preform some basic operation on a list of string names 
3     */
4    package arraylist;
5    
6    import java.util.ArrayList;
7    import java.util.List;
8    
9    public class ArrayListProcessing {
10       public static void main(String[] args) {
11           //POINT A: Add some strings which represent names to an ArrayList.
12           List<String> names = new ArrayList<>();
13           names.add("Holiday, Billie");
14           names.add("Claudel, Camille");
15           names.add("Picasso, Pablo");
16           names.add("Gallen-Kallela, Akseli");
17           names.add("Zotto, Osvaldo");
18           names.add("Chen, Jakie");
19           names.add("Khan, Genghis");
20   
21           //Point B: Create an ArrayList of just the first names of the names ArrayList.
22           // Use a for loop to print out the names, seperated by spaces.
23           List<String> firstNamesList = firstNames(names);
24           System.out.print("First names: ");
25           for (String firstName : firstNamesList) {
26               System.out.print(firstName + " ");
27           }
28           System.out.println();
29   
30           //Point C: use String's join function to create and print
31           // a String of just the first names of thr names ArrayList
32           // with each name seperated by a comma.
33           String firstNames = String.join(", ", firstNamesList);
34           System.out.println("First names: " + firstNames);
35   
36           //POINT D
37   
38           List<String> lastNamesList = lastNames(names);
39           System.out.print("Last Names: ");
40           for (String lastName : lastNamesList){
41               System.out.print(lastName + " ");
42           }
43           String lastNames = String.join(", ", lastNamesList);
44           System.out.println("\nLast names: " + lastNames);
45   
46           //POINT E
47           List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names));
48           String upperCaseFirstnames = String.join(", ", upperCaseFirstNamesList);
49   
50           System.out.println("Uppercase first names: " + upperCaseFirstnames);
51   
52           //Point F
53           List<String> hypenateNamesList = hyphenatedNames(names);
54           String hyphenatednames = String.join(", ", hypenateNamesList);
55           System.out.println("Hypenated Names: " + hyphenatednames);
56   
57           //POINT G
58   
59           int totalLength = totalNameLength(names);
60   
61           System.out.println("Total length: " + totalLength);
62   
63           //Point H
64   
65           int FirstNLength = totalNameLength(firstNamesList);
66           System.out.println(("First Name Length: " + FirstNLength));
67   
68           //Point I
69   
70           int nPlength = ProductNameLength(names);
71           System.out.println(("First Name Length: " + nPlength));
72       }
73   
74       private static String firstName(String directoryStyleName) {
75           int commaPosition = directoryStyleName.indexOf(",");
76           String firstName = directoryStyleName.substring(commaPosition + 1);
77   
78           return firstName;
79       }
80   
81       private static List<String> firstNames(List<String> names) {
82           List<String> firsts = new ArrayList<>();
83           for (String name : names)
84           {
85               firsts.add(firstName(name));
86           }
87           return firsts;
88       }
89   
90       //Point D: By analogty from points B & C,
91       // print a comma-seperated list of the last names in the names ArrayList.
92       private static String lastName(String directoryStyleName) {
93           int commaPosition = directoryStyleName.indexOf(",");
94           String lastName = directoryStyleName.substring(0, commaPosition);
95           return lastName;
96       }
97   
98       private static List<String> lastNames(List<String> names) {
99           List<String> last = new ArrayList<>();
100          for (String name: names)
101          {
102              last.add(lastName(name));
103          }
104          return last;
105      }
106  
107      // POINT E: Print a comma-separated list of all uppercase first names
108      //from the list of names in the names ArrayList.\
109      public static List<String> upperCaseNames(List<String> names){
110          List<String> uppercases = new ArrayList<>();
111          for (String name : names){
112              uppercases.add(name.toUpperCase());
113          }
114          return uppercases;
115      }
116  
117      // POINT F: Print a comma-separated list of all hyphenated last names
118      //from the list of names in the names ArrayList.
119      public static List<String> hyphenatedNames(List<String> names){
120          List<String> hyphenateds = new ArrayList<>();
121          for (String name : names){
122              if (name.contains("-")) {
123                  hyphenateds.add(name);
124              }
125          }
126          return hyphenateds;
127      }
128  
129      // POINT G: Print the integer value of the total length of all names
130      //in the names ArrayList.
131      public static int totalNameLength(List<String> names){
132          int totalLength = 0;
133          for (String name : names){
134              totalLength = totalLength + name.length();
135          }
136          return totalLength;
137      }
138  
139      // POINT H: Print the integer value of the total length of all
140      //first names in the names ArrayList.
141  
142      // POINT I: Print the integer value of the product of the length of
143      //all first names in the names ArrayList.
144      public static int ProductNameLength(List<String> names){
145          int PtotalLength = 1;
146          for (String name : names){
147              PtotalLength = PtotalLength * firstName(name).length();
148          }
149          return PtotalLength;
150      }
151  
152  
153  }
154