1 package arraylists; 2 3 /* 4 * A program to perform some basic operations on a list of String names. 5 */ 6 7 import java.util.ArrayList; 8 import java.util.List; 9 10 public class ArrayListProcessing { 11 public static void main(String[] args) 12 { 13 // POINT A: Add some strings which represent names to an ArrayList. 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("White, Betty"); 21 names.add("Trebek, Alex"); 22 23 // POINT B: Create an ArrayList of just the first names of the names 24 // ArrayList. Use a for loop to print out the names, separated 25 // by spaces. 26 List<String> firstNamesList = firstNames(names); 27 28 System.out.print("First names: "); 29 for(String firstName : firstNamesList){ 30 System.out.print(firstName + " "); 31 } 32 System.out.println(); 33 34 // POINT C: Use String's join function to create and print a String of 35 // just the first names of the names ArrayList with each 36 // name separated by a comma. 37 String firstNames = String.join(", ", firstNamesList); 38 39 System.out.println("First names: " + firstNames); 40 41 // POINT D: By analogy from points B and C, print a comma-separated 42 // list of the last names in the names ArrayList. 43 List<String> lastNamesList = lastNames(names); 44 String lastNames = String.join(", ", lastNamesList); 45 46 System.out.println("Last names: " + lastNames); 47 48 // POINT E: Print a comma-separated list of all uppercase first names 49 // from the list of names in the names ArrayList. 50 51 List<String> upperCaseFirstNamesList = upperCaseNames((firstNames(names))); 52 String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList); 53 54 System.out.println("Uppercase first names: " + upperCaseFirstNames); 55 56 // POINT F: Print a comma-separated list of all hyphenated last names 57 // from the list of names in the names ArrayList. 58 List<String> hyphenatedNamesList = hyphenatedNames(lastNames(names)); 59 60 String hyphenatedNames = String.join(", ", hyphenatedNamesList); 61 System.out.println("Hyphenated Last Names: " + hyphenatedNames); 62 63 // POINT G: Print the integer value of the total length of all names 64 // in the names ArrayList. 65 int totalLength = totalNameLength(names); 66 System.out.println("Total length: " + totalLength); 67 68 // POINT H: Print the integer value of the total length of all 69 // first names in the names ArrayList. 70 int totalLengthFirstName = totalNameLength(firstNames(names)); 71 System.out.println("Total first name length: " + totalLengthFirstName); 72 73 74 // POINT I: Print the integer value of the product of the length of 75 // all first names in the names ArrayList. 76 int productLengthFirstName = getLengthProduct(firstNames(names)); 77 System.out.println("Total first name length product: " + productLengthFirstName); 78 } 79 public static int getLengthProduct(List<String> names) 80 { 81 int total = names.get(0).length(); 82 for(int i = 1; i < names.size(); i++) 83 { 84 total *= names.get(i).length(); 85 } 86 return total; 87 } 88 public static int totalNameLength(List<String> names){ 89 int totalLength = 0; 90 for(String name : names) 91 { 92 totalLength = totalLength + name.length(); 93 } 94 return totalLength; 95 } 96 public static List<String> hyphenatedNames(List<String> names) 97 { 98 List<String> hyphenateds = new ArrayList<>(); 99 for(String name : names) 100 { 101 if(name.contains("-")) 102 { 103 hyphenateds.add(name); 104 } 105 } 106 return hyphenateds; 107 } 108 109 public static List<String> upperCaseNames(List<String> names) 110 { 111 List<String> uppercases = new ArrayList<>(); 112 for(String name : names) 113 { 114 uppercases.add(name.toUpperCase()); 115 } 116 return uppercases; 117 } 118 119 private static List<String> lastNames(List<String> names) 120 { 121 List<String> last = new ArrayList<>(); 122 for(String lastNames : names) 123 { 124 last.add(lastName(lastNames)); 125 126 } 127 return last; 128 } 129 130 private static String lastName(String directoryStyleName) { 131 return directoryStyleName.substring(0, directoryStyleName.indexOf(",")); 132 } 133 134 private static List<String> firstNames(List<String> names) 135 { 136 List<String> firsts = new ArrayList<>(); 137 for(String name : names){ 138 firsts.add(firstName(name)); 139 } 140 return firsts; 141 142 } 143 private static String firstName(String directoryStyleName) { 144 return directoryStyleName.substring(directoryStyleName.indexOf(" ") + 1); 145 } 146 } 147