ArrayListProcessing.java
1    /* 
2    * A program to perform some basic operations on a list of String names. 
3     */
4    
5    
6    
7    package arraylistplay;
8    
9    import org.w3c.dom.ls.LSOutput;
10   
11   import javax.crypto.spec.PSource;
12   import java.util.ArrayList;
13   import java.util.List;
14   
15   public class ArrayListProcessing {
16   
17       public static void main(String[] args) {
18           //Point A:  Add some Strings which represent names to an Arraylist.
19           List<String> names = new ArrayList<>();
20           names.add("Holiday, Billie");
21           names.add("Claudel, Camille");
22           names.add("Picasso, Pablo");
23           names.add("Gallen-Kallela, Akseli");
24           names.add("Zotto, Osvaldo");
25           names.add("Harry, Potter");
26           names.add("Khanal, Durga");
27   
28   
29           //Point B: Create an ArrayList of just the first names of the names
30           //ArrayList. use a for loop to print out the names, separated by spaces.
31   
32           List<String> firstNamesList = firstNames(names);
33           System.out.print("First names:");
34           for (String firstName: firstNamesList){
35               System.out.print(firstName + " ");
36           }
37           System.out.println();
38   
39   
40           // Point C: Use String's join function to create and print a String of just the first
41           // names of the names ArrayList with each name separated by a comma.
42           String firstNames= String.join(",", firstNamesList);
43   
44           System.out.println("First names:" + firstNames);
45   
46   
47           //Point D: By analogy from points B and C, print a comma-Separated list
48           //          of the last names in the names ArrayList.
49           List<String> lastNamesList = lastNames(names);
50           String lastNames= String.join(",", lastNamesList);
51           System.out.println("Last names:"+ lastNames);
52   
53           // Point E:  Print a comma-separated list of all uppercase first names
54           // from the list of names in the names ArrayList.
55           List<String> upperCaseFirstNamesList=  upperCaseNames(firstNames(names));
56           String upperCaseFirstNames= String.join(",", upperCaseFirstNamesList);
57   
58           System.out.println("UpperCase first names:"+ upperCaseFirstNames);
59   
60           // Point F: Print a comma-separated list of all uppercase first names
61           // from the list of names in the names ArrayList
62           List<String>hypenatedNames= hypenatedNames(lastNamesList);
63           String hypenatedLastNames= String.join("-", hypenatedNames);
64   
65           System.out.println("hyphenated last names:"+ hypenatedLastNames);
66   
67           // Point G: Print the integer value of the total length of all names in the names ArrayList.
68           int totalLength= totalNameLength(names);
69           System.out.println("Total Length:"+ totalLength);
70   
71           //Point H: Print the integer value of the total length of all first names in the names ArrayList.
72           int totalFirstNameLength= totalNameLength(firstNamesList);
73           System.out.println("Total Length of First names:"+ totalFirstNameLength);
74   
75           //Point I: Print the integer value of the product
76           // of the length of all first names in the names ArrayList.
77           int totalproduct= productionOfNameLength(firstNamesList);
78           System.out.println("Product of the length of all first names:"+ totalproduct);
79   
80       }
81   
82       private static String firstName(String directoryStyleName) {
83           int commaPosition = directoryStyleName.indexOf(",");
84           String firstName = directoryStyleName.substring(commaPosition + 2);
85   
86           return firstName;
87       }
88       private static List<String> firstNames(List<String> names) {
89           List<String> firsts = new ArrayList<>();
90           for (String name : names) {
91               firsts.add(firstName(name));
92           }
93           return firsts;
94       }
95       private static String lastName(String directoryStyleName) {
96           int commaPosition= directoryStyleName.indexOf(",");
97           String lastName= directoryStyleName.substring(0,commaPosition);
98   
99           return lastName;
100      }
101      private static List<String>lastNames(List<String>names) {
102          List<String> lasts = new ArrayList<>();
103          for (String name : names) {
104              lasts.add(lastName(name));
105          }
106          return lasts;
107      }
108      public static List<String>upperCaseNames(List<String>names) {
109          List<String> uppercases = new ArrayList<>();
110          for (String name : names) {
111              uppercases.add(name.toUpperCase());
112          }
113          return uppercases;
114      }
115      public static List<String>hypenatedNames(List<String>names){
116          List<String>hypenateds= new ArrayList<>();
117          for (String name: names){
118              if (name.contains("-")){
119                  hypenateds.add(name);
120              }
121          }
122          return hypenateds;
123      }
124      //Point G: total length of the names
125      public static int totalNameLength(List<String>names){
126          int totalLength= 0;
127          for (String name: names){
128              totalLength= totalLength+ name.length();
129          }
130          return totalLength;
131      }
132  
133      //Point I: product of the length of the first names
134      public static int productionOfNameLength(List<String>firstnames){
135          int product= 1;
136          for (String name: firstnames){
137              product= product*name.length();
138          }
139          return product;
140      }
141  
142  }