1 /* 2 A program to preform some basic operation on a list of string names 3 */ 4 package arraylist; 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("Chen, Jakie"); 19 names.add("Khan, Genghis"); 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, seperated by spaces. 23 List<String> firstNamesList = firstNames(names); 24 System.out.print("First names: "); 25 for (String firstName : firstNamesList) { 26 System.out.print(firstName + " "); 27 } 28 System.out.println(); 29 30 //Point C: use String's join function to create and print 31 // a String of just the first names of thr names ArrayList 32 // with each name seperated by a comma. 33 String firstNames = String.join(", ", firstNamesList); 34 System.out.println("First names: " + firstNames); 35 36 //POINT D 37 38 List<String> lastNamesList = lastNames(names); 39 System.out.print("Last Names: "); 40 for (String lastName : lastNamesList){ 41 System.out.print(lastName + " "); 42 } 43 String lastNames = String.join(", ", lastNamesList); 44 System.out.println("\nLast names: " + lastNames); 45 46 //POINT E 47 List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names)); 48 String upperCaseFirstnames = String.join(", ", upperCaseFirstNamesList); 49 50 System.out.println("Uppercase first names: " + upperCaseFirstnames); 51 52 //Point F 53 List<String> hypenateNamesList = hyphenatedNames(names); 54 String hyphenatednames = String.join(", ", hypenateNamesList); 55 System.out.println("Hypenated Names: " + hyphenatednames); 56 57 //POINT G 58 59 int totalLength = totalNameLength(names); 60 61 System.out.println("Total length: " + totalLength); 62 63 //Point H 64 65 int FirstNLength = totalNameLength(firstNamesList); 66 System.out.println(("First Name Length: " + FirstNLength)); 67 68 //Point I 69 70 int nPlength = ProductNameLength(names); 71 System.out.println(("First Name Length: " + nPlength)); 72 } 73 74 private static String firstName(String directoryStyleName) { 75 int commaPosition = directoryStyleName.indexOf(","); 76 String firstName = directoryStyleName.substring(commaPosition + 1); 77 78 return firstName; 79 } 80 81 private static List<String> firstNames(List<String> names) { 82 List<String> firsts = new ArrayList<>(); 83 for (String name : names) 84 { 85 firsts.add(firstName(name)); 86 } 87 return firsts; 88 } 89 90 //Point D: By analogty from points B & C, 91 // print a comma-seperated list of the last names in the names ArrayList. 92 private static String lastName(String directoryStyleName) { 93 int commaPosition = directoryStyleName.indexOf(","); 94 String lastName = directoryStyleName.substring(0, commaPosition); 95 return lastName; 96 } 97 98 private static List<String> lastNames(List<String> names) { 99 List<String> last = new ArrayList<>(); 100 for (String name: names) 101 { 102 last.add(lastName(name)); 103 } 104 return last; 105 } 106 107 // POINT E: Print a comma-separated list of all uppercase first names 108 //from the list of names in the names ArrayList.\ 109 public static List<String> upperCaseNames(List<String> names){ 110 List<String> uppercases = new ArrayList<>(); 111 for (String name : names){ 112 uppercases.add(name.toUpperCase()); 113 } 114 return uppercases; 115 } 116 117 // POINT F: Print a comma-separated list of all hyphenated last names 118 //from the list of names in the names ArrayList. 119 public static List<String> hyphenatedNames(List<String> names){ 120 List<String> hyphenateds = new ArrayList<>(); 121 for (String name : names){ 122 if (name.contains("-")) { 123 hyphenateds.add(name); 124 } 125 } 126 return hyphenateds; 127 } 128 129 // POINT G: Print the integer value of the total length of all names 130 //in the names ArrayList. 131 public static int totalNameLength(List<String> names){ 132 int totalLength = 0; 133 for (String name : names){ 134 totalLength = totalLength + name.length(); 135 } 136 return totalLength; 137 } 138 139 // POINT H: Print the integer value of the total length of all 140 //first names in the names ArrayList. 141 142 // POINT I: Print the integer value of the product of the length of 143 //all first names in the names ArrayList. 144 public static int ProductNameLength(List<String> names){ 145 int PtotalLength = 1; 146 for (String name : names){ 147 PtotalLength = PtotalLength * firstName(name).length(); 148 } 149 return PtotalLength; 150 } 151 152 153 } 154