1 /* 2 * A program to perform some basic operations on a list of String names. 3 */ 4 package arraylists; 5 6 import java.util.ArrayList; 7 import java.util.List; 8 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("Curry, Stephen"); 22 names.add("Thompson, Klay"); 23 names.add("Green, Draymond"); 24 names.add("Russel, Diangelo"); 25 26 27 // POINT B: Create an ArrayList of just the first name of the names ArrayList. use a for loop to print out the names, separated by spaces 28 List<String> firstNamesList = firstNames(names); 29 30 System.out.print("First names: "); 31 for (String firstName : firstNamesList) { 32 System.out.print(firstName + " "); 33 } 34 System.out.println(); 35 36 // POINT C: Use String's join function to create and print a String of just the first name of hte names ArrayList with each 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 list of the last name in the names ArrayList 42 List<String> lastNamesList = lastNames(names); 43 44 System.out.print("Last names: "); 45 for (String lastName : lastNamesList) { 46 System.out.print(lastName + " "); 47 } 48 System.out.println(); 49 50 String lastNames = String.join(", ", lastNamesList); 51 52 System.out.println("Last names: " + lastNames); 53 54 // POINT E: Print a comma-separated list of all uppercase first names 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 hyphenated last names from the list of names in the name ArrayList 61 List<String> hyphenatedNamesList = hyphenatedNames(names); 62 String hyphenatedNames = String.join(", ", hyphenatedNamesList); 63 64 System.out.println("Hyphenated names: " + hyphenatedNames); 65 66 // POINT G: Print the integer value of the total length of all names in the names ArrayList 67 int totalLength = totalNameLength(names); 68 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(firstNames(names)); 73 74 System.out.println("Total first names length: " + totalFirstNameLength); 75 76 // POINT I: Print the integer value of the product of the length of all first names in the names ArrayList 77 int totalLastNamesLength = totalNameLength(lastNames(names)); 78 79 System.out.print("Total last names length: " + totalLastNamesLength); 80 } 81 private static String firstName(String directoryStyleName) { 82 int firstComma = directoryStyleName.indexOf(","); 83 String firstName = directoryStyleName.substring(firstComma + 2); 84 return firstName; 85 86 } 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 96 private static String lastName(String directoryStyleName) { 97 int lastComma = directoryStyleName.indexOf(","); 98 String lastName = directoryStyleName.substring(0, lastComma); 99 return lastName; 100 } 101 102 private static List<String> lastNames(List<String> names) { 103 List<String> lasts = new ArrayList<>(); 104 for (String name : names) { 105 lasts.add(lastName(name)); 106 } 107 return lasts; 108 } 109 110 private static List<String> upperCaseNames(List<String> names) { 111 List<String> uppercases = new ArrayList<>(); 112 for (String name : names){ 113 uppercases.add(name.toUpperCase()); 114 } 115 return uppercases; 116 } 117 118 private static List<String> hyphenatedNames(List<String> names) { 119 List<String> hyphenateds = new ArrayList<>(); 120 for (String name : names) { 121 if (name.contains("-")) { 122 hyphenateds.add(name); 123 } 124 } 125 return hyphenateds; 126 } 127 128 private static int totalNameLength(List<String> names) { 129 int totalLength = 0; 130 for(String name : names) { 131 totalLength = totalLength + name.length(); 132 } 133 return totalLength; 134 } 135 136 } 137 138