1 package arraylists; 2 /* 3 *A program to perform some basic operations on a list of string names 4 */ 5 6 import java.util.ArrayList; 7 import java.util.List; 8 9 public class ArrayListProcessing { 10 public static void main(String[] args){ 11 //POINT A: Add some strings which represent names to an ArrayList 12 List<String> names = new ArrayList<>(); 13 names.add("Holiday, Billie"); 14 names.add("Claudel, Camille"); 15 names.add("Picasso, Pablo"); 16 names.add("Gallen-Kallela, Akseli"); 17 names.add("Zotto, Osvaldo"); 18 names.add("Garner, Xander"); 19 names.add("Strong, David"); 20 21 //POINT B: Create an ArrayList of just the first names of the names Arraylist 22 // Use a for loop to print out the names, separated by spaces. 23 24 List<String> firstNamesList = firstNames(names); 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 the join function to create a string of the first names, separated by commas 32 33 String firstNames = String.join(",",firstNamesList); 34 System.out.println("First names: " + firstNames); 35 36 //POINT D: By analogy, print a comma separated list of last names 37 38 List<String> lastNamesList = lastNames(names); 39 40 String lastNames = String.join(",", lastNamesList); 41 System.out.println("Last names: " + lastNames); 42 43 //POINT E: Print a comma-separated list of uppercase first names 44 45 List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names)); 46 String uCaseNames = String.join(",",upperCaseFirstNamesList); 47 System.out.println("Uppercase first names: " + uCaseNames); 48 49 //POINT F: Print a comma-separated list of all hyphenated last names 50 51 List<String> hypLastNamesList = hyphenatedNames(lastNames(names)); 52 String hypNames = String.join(",",hypLastNamesList); 53 System.out.println("Hyphenated last names: " + hypNames); 54 55 //POINT G: Print the integer value of the total length of all names 56 57 int totalLength = totalNameLength(names); 58 System.out.println("Total Length: " + totalLength); 59 60 //POINT H: Print the integer value of the total length of all first names 61 62 int fNameLength = 0; 63 for(String name : firstNamesList){ 64 fNameLength = fNameLength + name.length(); 65 } 66 System.out.println("First Names Length: " + fNameLength); 67 68 //POINT I: Print the integer value of the product of the length of first names 69 70 int fNameProduct = fistNameProduct(firstNamesList); 71 System.out.println("Total Product: " + fNameProduct); 72 73 } 74 private static String firstName(String directoryStyleName) { 75 int commaPosition = directoryStyleName.indexOf(","); //Comma position of name 76 int startPosition = (commaPosition + 2); //Position of fist name 77 String firstName = directoryStyleName.substring(startPosition); //Getting first name 78 return firstName; 79 } 80 private static List<String> firstNames(List<String> names){ 81 List<String> firsts = new ArrayList<>(); 82 for(String name : names){ 83 firsts.add(firstName(name)); 84 } 85 return firsts; 86 } 87 88 private static String lastName(String directoryStyleName) { 89 int commaPosition = directoryStyleName.indexOf(","); 90 int endPosition = (commaPosition); 91 String lastName = directoryStyleName.substring(0, endPosition); 92 return lastName; 93 } 94 private static List<String> lastNames(List<String> names){ 95 List<String> lasts = new ArrayList<>(); 96 for(String name : names){ 97 lasts.add(lastName(name)); 98 } 99 return lasts; 100 } 101 102 public static List<String> upperCaseNames(List<String> names){ 103 List<String> uppercases = new ArrayList<>(); 104 for(String name : names){ 105 uppercases.add(name.toUpperCase()); 106 } 107 return uppercases; 108 } 109 110 public static List<String> hyphenatedNames(List<String> names){ 111 List<String> hyphenateds = new ArrayList<>(); 112 for(String name : names){ 113 if(name.contains("-")){ 114 hyphenateds.add(name); 115 } 116 } 117 return hyphenateds; 118 } 119 120 public static int totalNameLength(List<String> names){ 121 int totalLength = 0; 122 for(String name : names){ 123 totalLength = totalLength + name.length(); 124 } 125 return totalLength; 126 } 127 128 public static int fistNameProduct(List<String> names){ 129 int totalLength = 1; 130 for(String name : names){ 131 totalLength = totalLength * name.length(); 132 } 133 return totalLength; 134 } 135 } 136