1 /* 2 * A program to perform some basic operations on a list of String names. 3 */ 4 5 6 7 package arraylistplay; 8 9 import org.w3c.dom.ls.LSOutput; 10 11 import javax.crypto.spec.PSource; 12 import java.util.ArrayList; 13 import java.util.List; 14 15 public class ArrayListProcessing { 16 17 public static void main(String[] args) { 18 //Point A: Add some Strings which represent names to an Arraylist. 19 List<String> names = new ArrayList<>(); 20 names.add("Holiday, Billie"); 21 names.add("Claudel, Camille"); 22 names.add("Picasso, Pablo"); 23 names.add("Gallen-Kallela, Akseli"); 24 names.add("Zotto, Osvaldo"); 25 names.add("Harry, Potter"); 26 names.add("Khanal, Durga"); 27 28 29 //Point B: Create an ArrayList of just the first names of the names 30 //ArrayList. use a for loop to print out the names, separated by spaces. 31 32 List<String> firstNamesList = firstNames(names); 33 System.out.print("First names:"); 34 for (String firstName: firstNamesList){ 35 System.out.print(firstName + " "); 36 } 37 System.out.println(); 38 39 40 // Point C: Use String's join function to create and print a String of just the first 41 // names of the names ArrayList with each name separated by a comma. 42 String firstNames= String.join(",", firstNamesList); 43 44 System.out.println("First names:" + firstNames); 45 46 47 //Point D: By analogy from points B and C, print a comma-Separated list 48 // of the last names in the names ArrayList. 49 List<String> lastNamesList = lastNames(names); 50 String lastNames= String.join(",", lastNamesList); 51 System.out.println("Last names:"+ lastNames); 52 53 // Point E: Print a comma-separated list of all uppercase first names 54 // 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 uppercase first names 61 // from the list of names in the names ArrayList 62 List<String>hypenatedNames= hypenatedNames(lastNamesList); 63 String hypenatedLastNames= String.join("-", hypenatedNames); 64 65 System.out.println("hyphenated last names:"+ hypenatedLastNames); 66 67 // Point G: Print the integer value of the total length of all names in the names ArrayList. 68 int totalLength= totalNameLength(names); 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(firstNamesList); 73 System.out.println("Total Length of First names:"+ totalFirstNameLength); 74 75 //Point I: Print the integer value of the product 76 // of the length of all first names in the names ArrayList. 77 int totalproduct= productionOfNameLength(firstNamesList); 78 System.out.println("Product of the length of all first names:"+ totalproduct); 79 80 } 81 82 private static String firstName(String directoryStyleName) { 83 int commaPosition = directoryStyleName.indexOf(","); 84 String firstName = directoryStyleName.substring(commaPosition + 2); 85 86 return firstName; 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 private static String lastName(String directoryStyleName) { 96 int commaPosition= directoryStyleName.indexOf(","); 97 String lastName= directoryStyleName.substring(0,commaPosition); 98 99 return lastName; 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>hypenatedNames(List<String>names){ 116 List<String>hypenateds= new ArrayList<>(); 117 for (String name: names){ 118 if (name.contains("-")){ 119 hypenateds.add(name); 120 } 121 } 122 return hypenateds; 123 } 124 //Point G: total length of the names 125 public static int totalNameLength(List<String>names){ 126 int totalLength= 0; 127 for (String name: names){ 128 totalLength= totalLength+ name.length(); 129 } 130 return totalLength; 131 } 132 133 //Point I: product of the length of the first names 134 public static int productionOfNameLength(List<String>firstnames){ 135 int product= 1; 136 for (String name: firstnames){ 137 product= product*name.length(); 138 } 139 return product; 140 } 141 142 }