1 /* 2 * A program to perform some basic operations on a list of String names 3 */ 4 5 package arraylists; 6 7 import java.util.ArrayList; 8 import java.util.List; 9 10 public class ArrayListProcessing { 11 12 public static void main(String[] args){ 13 14 //POINT A: Add some strings which represent names to an ArrayList. 15 List<String> names = new ArrayList<>(); 16 names.add("Holiday, Billie"); 17 names.add("Claudel, Camille"); 18 names.add("Picasso, Pablo"); 19 names.add("Gallen-Kallela, Akseli"); 20 names.add("Zotto, Osvaldo"); 21 names.add("Tepfenhart-Yamada, Emily"); 22 names.add("Jingleheimer-Schmidt, John Jacob"); 23 24 //POINT B: Create an ArrayList of just the first names of the names ArrayList. Use a for loop to print out the names, separated by spaces. 25 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 35 //POINT C: Use String's join function to create and print a String of just the first names of the names ArrayList with each name separated by a comma. 36 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 list of the last names in the names ArrayList 42 List<String> lastNamesList = lastNames(names); 43 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 from the list of names in the names ArrayList 49 List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names)); 50 String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList); 51 52 System.out.println("Uppercase first names: " + upperCaseFirstNames); 53 54 //PONT F: Print a comma-separated list of all hyphenated last names from the list of names in the names ArrayList 55 List<String> hyphenatedNamesList = hyphenatedNames(lastNamesList); 56 String hyphenatedNames = String.join(", ", hyphenatedNamesList); 57 58 System.out.println("Hyphenated last names: " + hyphenatedNames); 59 60 //POINT G: Print the integer value of the total length of all names in the names ArrayList 61 int totalLength = totalNameLength(names); 62 63 System.out.println("Total length: " + totalLength); 64 65 //POINT H: Print the integer value of the total length of all first names in the names ArrayList 66 int totalLengthOfFirstNames = totalNameLength(firstNamesList); 67 68 System.out.println("Total first name length: " + totalLengthOfFirstNames); 69 70 //POINT I: Print the integer value of the product of the length of all first names in the names ArrayList. 71 int totalProductOfLength = totalProductOfNameLength(names); 72 73 System.out.println("Total product of name length: " + totalProductOfLength); 74 75 } 76 77 private static String firstName(String directoryStyleNames) { 78 79 return directoryStyleNames.substring(directoryStyleNames.indexOf(" ") + 1); 80 } 81 82 private static List<String> firstNames(List<String> names){ 83 List<String> firsts = new ArrayList<>(); 84 for (String name:names){ 85 firsts.add(firstName(name)); 86 } 87 return firsts; 88 } 89 90 private static String lastName(String directoryStyleName){ 91 92 return directoryStyleName.substring(0,directoryStyleName.indexOf(",")); 93 } 94 95 private static List<String> lastNames(List<String> names){ 96 List<String> lasts = new ArrayList<>(); 97 for (String name:names){ 98 lasts.add(lastName(name)); 99 } 100 return lasts; 101 } 102 103 public static List<String> upperCaseNames(List<String> names){ 104 List<String> uppercases = new ArrayList<>(); 105 for (String name: names){ 106 uppercases.add(name.toUpperCase()); 107 } 108 return uppercases; 109 } 110 111 public static List<String> hyphenatedNames(List<String> names) { 112 List<String> hyphenateds = new ArrayList<>(); 113 for (String name : names) { //filter 114 if (name.contains("-")) { 115 hyphenateds.add(name); 116 } 117 } 118 return hyphenateds; 119 } 120 121 public static int totalNameLength(List<String> names){ 122 int totalLength = 0; //accumulator 123 for (String name : names) { 124 totalLength = totalLength + name.length(); 125 } 126 return totalLength; 127 } 128 129 private static int totalProductOfNameLength(List<String> names) { 130 int totalProduct = 1; //accumulator 131 for (String name : names) { 132 133 totalProduct = totalProduct*name.length(); 134 } 135 return totalProduct; 136 137 } 138 139 140 141 }