1 // a program to perform some basic operations on a list of string names 2 package arraylists; 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import static java.lang.System.out; 7 8 public class ArrayListProcessing { 9 public static void main(String[] args) { 10 11 //point A: Add some strings which represent names to an ArrayList 12 13 List<String> names = new ArrayList<>(); 14 names.add("Holliday, Billie"); 15 names.add("Claudel, Camille"); 16 names.add("Picasso, Pablo"); 17 names.add("Gallen-Kallela, Akseli"); 18 names.add("Zotto, Osvaldo"); 19 names.add("Walker, Jeremy"); 20 names.add("Roosevelt, Teddy"); 21 22 //point B: create an ArrayList of just the first names of the names ArrayLIst 23 //Use a for loop to print out the names, separated by spaces 24 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 //paint C: use String's join function to create and print a string of just the first names of the names 36 //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 42 //print a comma separated list of the last names in the Arraylist 43 List<String> lastNamesList = lastNames(names); 44 45 System.out.print("last names: "); 46 for (String lastName : lastNamesList) { 47 System.out.print(lastName + ""); 48 } 49 System.out.println(); 50 51 52 String lastNames = String.join(", ", lastNamesList); 53 54 System.out.println("lastnames: " + lastNames); 55 56 57 //point E: Print a comma separated list of all hyphenated last names from the list 58 //of names in the names arraylist 59 List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names)); 60 String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList); 61 62 System.out.println("uppercase first names: " + upperCaseFirstNames); 63 64 //point F: print a comma separated list of hyohenated last names from the names Arraylist 65 List<String> hyphenatedLastNamesList = hyphenatedNames(lastNames(names)); 66 String hyphenatedLastNames = String.join(", ", hyphenatedLastNamesList); 67 68 System.out.println("hyphenated last names: " + hyphenatedLastNames); 69 //point G: print the integer value of the total length of all first names 70 int totalLength = totalNameLength(names); 71 System.out.println("Total length: " + totalLength); 72 73 //point H: Print the integer value of the total length of all first names 74 int firstNameTotalLength = totalNameLength(firstNamesList); 75 System.out.println("Total length fist names: " + firstNameTotalLength); 76 77 //point I: print the integer value of the product of the length of all first names 78 int lastNameTotalLength = totalNameLength(lastNamesList); 79 System.out.println("Total length fist names: " + lastNameTotalLength); 80 81 } 82 83 private static List<String> firstNames(List<String> names) { 84 List<String> firsts = new ArrayList<>(); 85 for (String name : names) { 86 firsts.add(firstName(name)); 87 } 88 return firsts; 89 } 90 91 private static String firstName(String directoryStyleName) { 92 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(","); 93 return directoryStyleName.substring(directoryStyleNameCommaPosition + 2); 94 } 95 96 private static String lastName(String directoryStyleName) { 97 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(","); 98 return directoryStyleName.substring(0, directoryStyleNameCommaPosition); 99 } 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> hyphenatedNames(List<String> names){ 116 List<String> hyphenateds = new ArrayList<>(); 117 for (String name : names){ 118 if (name.contains("-")){ 119 hyphenateds.add(name); 120 } 121 } 122 return hyphenateds; 123 } 124 public static int totalNameLength(List<String> names){ 125 int totalLength = 0; 126 for (String name : names){ 127 totalLength = totalLength + name.length(); 128 } 129 return totalLength; 130 } 131 132 }