ArrayListProcessing.java
1    /* 
2     * A program to preform 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       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           //Point B: Create and ArrayList of only first names
19           List<String> firstNamesList = firstNames(names);
20           for(String firstName : firstNamesList) {
21               System.out.print(firstName + " ");
22           }
23           System.out.println();
24           //Point C: Make a string of the first names
25           String firstNames = String.join(", ", firstNamesList);
26           System.out.println("First names: " + firstNames);
27           //Point D
28           List<String> lastNamesList = lastNames(names);
29           for(String lastName : lastNamesList) {
30               System.out.print(lastName + " ");
31           }
32           System.out.println();
33           //Point E
34           List<String> upperCaseFirstNameList = upperCaseNames(firstNames(names));
35           String upperCaseFirstNames = String.join(", ", upperCaseFirstNameList);
36           System.out.println("Uppercase first names: " + upperCaseFirstNames);
37           //Point F
38           List<String> hypenatedNamesList = hyphenatedNames(names);
39           String hypenatedNames = String.join(", ", hypenatedNamesList);
40           System.out.println("Hypenated names: " + hypenatedNames);
41           //Point G
42           int totalLength = totalNameLength(names);
43           System.out.println("Total length: " + totalLength);
44           //Point H
45           int firstNamesTotalLength = totalNameLength(firstNamesList);
46           System.out.println("Total length of first names: " + firstNamesTotalLength);
47           //Point I
48           int lastNamesTotalLength = totalNameLength(lastNamesList);
49           System.out.println("Total length of last names: " + lastNamesTotalLength);
50   
51       }
52   
53       private static int totalNameLength(List<String> names) {
54           int totalLength = 0;
55           for (String name : names) {
56               totalLength = totalLength + name.length();
57           }
58           return  totalLength;
59       }
60   
61       private static List<String> hyphenatedNames(List<String> names) {
62           List<String> hyphenateds = new ArrayList<>();
63           for (String name : names) {
64               if (name.contains("-")) {
65                   hyphenateds.add(name);
66               }
67           }
68           return hyphenateds;
69       }
70   
71       private static List<String> upperCaseNames(List<String> names) {
72           List<String> uppercases = new ArrayList<>();
73           for (String name : names) {
74               uppercases.add(name.toUpperCase());
75           }
76           return uppercases;
77       }
78   
79       public static List<String> firstNames(List<String> names){
80           List<String> firsts = new ArrayList<>();
81           for(String name : names) {
82               firsts.add(firstName(name));
83           }
84           return firsts;
85       }
86   
87       private static String firstName(String directoryStyleName) {
88           int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
89           return directoryStyleName.substring(directoryStyleNameCommaPosition + 2);
90       }
91   
92       public static List<String> lastNames(List<String> names){
93           List<String> lasts = new ArrayList<>();
94           for(String name : names) {
95               lasts.add(lastName(name));
96           }
97           return lasts;
98       }
99   
100      private static String lastName(String directoryStyleName) {
101          int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
102          return directoryStyleName.substring(0, directoryStyleNameCommaPosition);
103      }
104  
105  }
106