ArrayListProcessing.java
1    /* 
2     * A program to perform some basic operations on a list of String names. 
3     */
4    
5    
6    package arraylists;
7    
8    import java.util.ArrayList;
9    import java.util.List;
10   
11   public class ArrayListProcessing {
12   
13       public static void main(String[] args){
14           List<String> names = new ArrayList<>();
15           names.add("Holiday, Billie");
16           names.add("Claudel, Camille");
17           names.add("Picasso, Pablo");
18           names.add("Gallen-Kallela, Akseli");
19           names.add("Zotto, Osvaldo");
20           names.add("Randall, Damian");
21           names.add("Struempfler, Emily");
22   
23           List<String> firstNamesList = firstNames(names);
24   
25           System.out.println("First names: ");
26           for (String firstName : firstNamesList){
27               System.out.println(firstName + " ");
28           }
29           System.out.println();
30   
31           String firstNames = String.join(", ", firstNamesList);
32           System.out.println("First names: " + firstNames);
33   
34   
35           List<String> lastNamesList = lastNames(names);
36           String lastNames = String.join(", ", lastNamesList);
37           System.out.println("Last names: " + lastNames);
38   
39           List<String> upperCaseNames = upperCaseNames(names);
40           String upperCaseNamesString = String.join(", ", upperCaseNames);
41           System.out.println("Uppercase first names: " + upperCaseNamesString);
42   
43           List<String> hyphenatedNames = hyphenatedNames(names);
44           String hyphenatedNamesString = String.join(", ", hyphenatedNames);
45           System.out.println("Hyphenated names: " + hyphenatedNamesString);
46   
47           int totalLength = totalNameLength(names);
48           System.out.println("Total length: " + totalLength);
49   
50           int firstTotalLength = totalNameLength(firstNamesList);
51           System.out.println("Total first name length: " + firstTotalLength);
52   
53       }
54   
55       public static int totalNameLength(List<String> names){
56           int totalLength = 0;
57           for (String name : names){
58               totalLength = totalLength + name.length();
59           }
60           return totalLength;
61       }
62   
63       public static List<String> hyphenatedNames(List<String> names){
64           List<String> hyphenateds = new ArrayList<>();
65           for (String name : names){
66               if(name.contains("-")){
67                   hyphenateds.add(name);
68               }
69           }
70           return hyphenateds;
71       }
72   
73       public static List<String> upperCaseNames(List<String> names){
74           List<String> uppercases = new ArrayList<>();
75           for (String name : names){
76               uppercases.add(name.toUpperCase());
77           }
78           return uppercases;
79       }
80   
81       private static String lastName(String directoryStyleName) {
82           int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
83           String lastName = directoryStyleName.substring(0, directoryStyleNameCommaPosition);
84           return lastName;
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 List<String> firstNames(List<String> names){
96           List<String> firsts = new ArrayList<>();
97           for (String name : names){
98               firsts.add(firstName(name));
99           }
100          return firsts;
101      }
102  
103      private static String firstName(String directoryStyleName) {
104          int margin = 2;
105          int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
106          String firstName = directoryStyleName.substring(directoryStyleNameCommaPosition + margin);
107          return firstName;
108      }
109  }
110