1 package arraylist; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class ArrayListProcesing { 7 8 public static void main(String[] args) { 9 10 //POINT A: Add some strings which represent names to an ArrayList 11 List<String> names = new ArrayList<>(); 12 names.add("Holiday, Billie"); 13 names.add("Claudel, Camille"); 14 names.add("Picasso, Pablo"); 15 names.add("Gallen-Kallela, Akseli"); 16 names.add("Zotto, Osvaldo"); 17 names.add("Maldonado, Gregory"); 18 names.add("Smith, Katherine"); 19 20 //POINT B: Creates an ArrayList of just the first names of the names ArrayList 21 // Use a for loop to print out the names, separated by spaces 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 //POINT C: Use String's join function to create and print a String of just the 32 // first names of the names ArrayList with each name separated by a comma 33 34 String firstNames = String.join(", ", firstNamesList); 35 36 System.out.println("First names: " + firstNames); 37 38 //POINT D: By analogy from points B and C, print a comma-separated list 39 // of the last names in the names ArrayList 40 41 List<String> lastNamesList = firstNames(names); 42 43 System.out.println("Last names: "); 44 for (String lastName : lastNamesList) { 45 System.out.println(lastName + " "); 46 } 47 System.out.println(); 48 49 String lastNames = String.join(", ", lastNamesList); 50 51 //POINT E: Print a comma-separated list of all uppercase first names from 52 // the list of names in the names ArrayList 53 54 List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names)); 55 String upperCaseFirstnames = String.join(", ", upperCaseFirstNamesList); 56 57 System.out.println("Uppercase first names: " + upperCaseFirstnames); 58 59 //POINT F: Print a comma-separated list of all hyphenated ast names from 60 // the list of names in the names ArrayList 61 62 List<String> hyphenatednamesList = hyphenatedNames(names); 63 String hyphenatedNames = String.join("," , hyphenatednamesList); 64 65 System.out.println("Hyphenated names: " + hyphenatedNames); 66 67 //POINT G: Print the integer value of the total length of all names in the names ArrayList 68 69 int totalLength = totalNameLength(names); 70 71 System.out.println("Total length: " + totalLength); 72 73 //POINT H: Prints the integer values of the total length of all first names in the names ArrayList 74 75 int totalFirstNameLength = totalNameLength(firstNamesList); 76 77 System.out.println("Total first name length: " + totalFirstNameLength); 78 79 //POINT I: Print the integer value of the product of the length of all first names in the names ArrayList 80 81 int productOfNames = 1; 82 83 for (String name : names) { 84 productOfNames = productOfNames * name.length(); 85 } 86 87 System.out.println("Product of Names: " + productOfNames); 88 89 } 90 91 private static List<String> firstNames(List<String> names) { 92 List<String> firsts = new ArrayList<>(); 93 for (String name : names) { 94 firsts.add(firstName((name))); 95 } 96 return firsts; 97 } 98 99 private static String firstName(String directoryStyleName) { 100 101 int index = directoryStyleName.indexOf(","); 102 String firstName = directoryStyleName.substring(index + 2); 103 104 return firstName; 105 } 106 107 private static String lastName(String directoryStyleName) { 108 109 int index = directoryStyleName.indexOf(","); 110 String lastName = directoryStyleName.substring(0, index); 111 112 return lastName; 113 } 114 115 private static List<String> upperCaseNames(List<String> names) { 116 List<String> uppercases = new ArrayList<>(); 117 for (String name : names ) { 118 uppercases.add(name.toUpperCase()); 119 } 120 return uppercases; 121 } 122 123 private static List<String> hyphenatedNames(List<String> names) { 124 List<String> hyphenateds = new ArrayList<>(); 125 for (String name : names) { 126 if (name.contains("-")) { 127 hyphenateds.add(name); 128 } 129 } 130 return hyphenateds; 131 } 132 133 private static int totalNameLength(List<String> names) { 134 int totalLength = 0; 135 for (String name : names) { 136 totalLength = totalLength + name.length(); 137 } 138 return totalLength; 139 } 140 141 142 } 143