ArrayListProcessing.java
1    //A program to perform some basic operations on a list of String names
2    
3    package arraylists;
4    
5    import java.util.ArrayList;
6    import java.util.List;
7    
8    public class ArrayListProcessing {
9    
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("Dogg, Snoop");
19           names.add("E, Big");
20   
21           //POINT B: Create an array list of just the first names
22          List<String> firstNamesList = firstNames(names);
23   
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 a String of just the first names of the names
31           // ArrayList with each name separated by a comma
32           String firstNames = String.join(",",firstNamesList);
33           System.out.println("First Names: " + firstNames);
34   
35           //POINT D:Create a comma separated list of last names
36           List<String> lastNamesList = lastNames(names);
37           System.out.println("Last Names: ");
38           for (String lastName : lastNamesList){
39               System.out.print(lastName + " ");
40           }
41           System.out.println();
42   
43           String lastNames = String.join(",", lastNamesList);
44           System.out.println("Last Names: " + lastNames);
45   
46           //POINT E: Print a comma separated list of uppercase first names
47           List<String> UpperCaseFirstNamesList = uppperCaseNames(firstNames(names));
48           String upperCaseFirstNames = String.join(",",UpperCaseFirstNamesList);
49   
50           System.out.println("Uppercase First Names: " + upperCaseFirstNames);
51   
52           //POINT F: Print a comma separated list of hyphenated last names
53           List<String> HyphenatedLastNamesList = hyphenatedNames(lastNames(names));
54           String hyphenatedLastNames = String.join(",",HyphenatedLastNamesList);
55           System.out.println("Hyphenated Last Names: " + hyphenatedLastNames);
56   
57           //POINT G: Print an integer value of the total length of all the names in the array list
58           int totalNameLength = totalNameLength(names);
59           System.out.println("Total Name Length: " + totalNameLength);
60   
61           //POINT H: Print the total length of the first names
62           int firstNamesLength = totalNameLength(firstNames(names));
63           System.out.println("First Names Length: " + firstNamesLength);
64   
65           //POINT I: Print the total product of the lengths of the names
66           int productNameLength = productNameLength(names);
67           System.out.println("Product of Names: " + productNameLength);
68       }
69   
70       public static int productNameLength(List<String> names){
71           int productNameLength = 1;
72           for(String name : names){
73               productNameLength = productNameLength * name.length();
74           }return productNameLength;
75       }
76       public static int totalNameLength(List<String> names){
77           int totalNameLength = 0;
78           for (String name : names){
79               totalNameLength = totalNameLength + name.length();
80           }return totalNameLength;
81       }
82       public static List<String> hyphenatedNames(List<String> names){
83           List<String> hyphenated = new ArrayList<>();
84           for(String name : names){
85              if (name.contains("-")){
86                  hyphenated.add(name);
87              }
88           }return hyphenated;
89       }
90       public static  List<String> uppperCaseNames(List<String> names){
91           List<String> uppercases = new ArrayList<>();
92           for (String name : names){
93               uppercases.add(name.toUpperCase());
94           } return uppercases;
95       }
96       private static List<String> lastNames(List<String> names) {
97           List<String> lasts = new ArrayList<>();
98           for (String name : names) {
99               lasts.add(lastName(name));
100          }return lasts;
101      }
102  
103      private static String lastName(String name) {
104          int last = name.indexOf(",");
105          name = name.substring(0, last);
106          return name;
107      }
108  
109  
110      private static List<String> firstNames (List<String> names){
111          List<String> firsts = new ArrayList<>();
112          for ( String name : names){
113              firsts.add(firstName(name));
114          }return firsts;
115      }
116  
117      private static String firstName(String name) {
118          int first = name.indexOf(",");
119          String f = name.substring(first + 2);
120          return f;
121      }
122  }
123