1 /* 2 * A program to preform 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 the names to an ArrayList. 15 16 List<String> names = new ArrayList<>(); 17 names.add("Holiday, Billie"); 18 names.add("Claudel, Camille"); 19 names.add("Picasso, Pablo"); 20 names.add("Gallen-Kallelal, Akseli"); 21 names.add("Zotto, Osvaldo"); 22 names.add("Rodriguez, Deysy"); 23 names.add("Cortez, Brenda"); 24 25 //First names 26 List<String> firstNamesList = firstNames(names); 27 System.out.print("First names: "); 28 for (String firstName : firstNamesList){ 29 System.out.print(firstName + " "); 30 } 31 System.out.println(); 32 String firstNames = String.join(", ", firstNamesList); 33 System.out.println("First names: " + firstNames); 34 35 //Last names 36 List<String> lastNamesList = lastNames(names); 37 System.out.print("Last names: "); 38 for (String lastName : lastNamesList){ 39 System.out.print(lastName + " "); 40 } 41 System.out.println(); 42 String lastNames = String.join(", ", lastNamesList); 43 System.out.println("Last names: " + lastNames); 44 45 //First names to uppercase 46 List<String> upperCaseFirstNameList = upperCaseNames(firstNames(names)); 47 String upperCaseFirstNames = String.join(", ", upperCaseFirstNameList); 48 System.out.println("Uppercase first names: " + upperCaseFirstNames); 49 50 //Names with hyphens 51 List<String> hyphenatedNameList = hyphenatedNames(lastNames(names)); 52 String hyphenatedNames = String.join(", ", hyphenatedNameList); 53 System.out.println("Hyphenated names: " + hyphenatedNames); 54 55 //Total name length 56 int totalLength = totalNameLength(names); 57 System.out.println("Total length: " + totalLength); 58 59 //Total first name length 60 int totalFirstLength = totalNameLength(firstNamesList); 61 System.out.println("Total first name length: " + totalFirstLength); 62 63 //Product total of names 64 int productTotalLength = productNameLength(names); 65 System.out.println("Product total of names: " + productTotalLength); 66 } 67 68 public static int productNameLength(List<String> names){ 69 int totalLength = 1; 70 for (String name : names){ 71 totalLength = totalLength * name.length(); 72 } 73 return totalLength; 74 } 75 76 public static int totalNameLength(List<String> names){ 77 int totalLength = 0; 78 for (String name : names){ 79 totalLength = totalLength + name.length(); 80 } 81 return totalLength; 82 } 83 84 public static List<String> hyphenatedNames(List<String> names){ 85 List<String> hyphenateds = new ArrayList<>(); 86 for (String name : names){ 87 if (name.contains("-")){ 88 hyphenateds.add(name); 89 } 90 } 91 return hyphenateds; 92 } 93 94 public static List<String> upperCaseNames(List<String> names){ 95 List<String> uppercases = new ArrayList<>(); 96 for (String name : names){ 97 uppercases.add(name.toUpperCase()); 98 } 99 return uppercases; 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 String firstName(String directoryStyleName) { 111 int commaPosition = directoryStyleName.indexOf(","); 112 return directoryStyleName.substring((commaPosition + 2), (directoryStyleName.length())); 113 } 114 115 private static List<String> firstNames(List<String> names){ 116 List<String> firsts = new ArrayList<>(); 117 for (String name : names){ 118 firsts.add(firstName(name)); 119 } 120 return firsts; 121 } 122 123 private static String lastName(String directoryStyleName) { 124 int commaPosition = directoryStyleName.indexOf(","); 125 return directoryStyleName.substring(0, commaPosition); 126 } 127 128 } 129 130 131 132 133 134