1 /* 2 * A program to preform some basic operations on a list of String names. 3 */ 4 package arraylistplay; 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 //Point B: Create and ArrayList of only first names 19 List<String> firstNamesList = firstNames(names); 20 for(String firstName : firstNamesList) { 21 System.out.print(firstName + " "); 22 } 23 System.out.println(); 24 //Point C: Make a string of the first names 25 String firstNames = String.join(", ", firstNamesList); 26 System.out.println("First names: " + firstNames); 27 //Point D 28 List<String> lastNamesList = lastNames(names); 29 for(String lastName : lastNamesList) { 30 System.out.print(lastName + " "); 31 } 32 System.out.println(); 33 //Point E 34 List<String> upperCaseFirstNameList = upperCaseNames(firstNames(names)); 35 String upperCaseFirstNames = String.join(", ", upperCaseFirstNameList); 36 System.out.println("Uppercase first names: " + upperCaseFirstNames); 37 //Point F 38 List<String> hypenatedNamesList = hyphenatedNames(names); 39 String hypenatedNames = String.join(", ", hypenatedNamesList); 40 System.out.println("Hypenated names: " + hypenatedNames); 41 //Point G 42 int totalLength = totalNameLength(names); 43 System.out.println("Total length: " + totalLength); 44 //Point H 45 int firstNamesTotalLength = totalNameLength(firstNamesList); 46 System.out.println("Total length of first names: " + firstNamesTotalLength); 47 //Point I 48 int lastNamesTotalLength = totalNameLength(lastNamesList); 49 System.out.println("Total length of last names: " + lastNamesTotalLength); 50 51 } 52 53 private static int totalNameLength(List<String> names) { 54 int totalLength = 0; 55 for (String name : names) { 56 totalLength = totalLength + name.length(); 57 } 58 return totalLength; 59 } 60 61 private static List<String> hyphenatedNames(List<String> names) { 62 List<String> hyphenateds = new ArrayList<>(); 63 for (String name : names) { 64 if (name.contains("-")) { 65 hyphenateds.add(name); 66 } 67 } 68 return hyphenateds; 69 } 70 71 private static List<String> upperCaseNames(List<String> names) { 72 List<String> uppercases = new ArrayList<>(); 73 for (String name : names) { 74 uppercases.add(name.toUpperCase()); 75 } 76 return uppercases; 77 } 78 79 public static List<String> firstNames(List<String> names){ 80 List<String> firsts = new ArrayList<>(); 81 for(String name : names) { 82 firsts.add(firstName(name)); 83 } 84 return firsts; 85 } 86 87 private static String firstName(String directoryStyleName) { 88 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(","); 89 return directoryStyleName.substring(directoryStyleNameCommaPosition + 2); 90 } 91 92 public static List<String> lastNames(List<String> names){ 93 List<String> lasts = new ArrayList<>(); 94 for(String name : names) { 95 lasts.add(lastName(name)); 96 } 97 return lasts; 98 } 99 100 private static String lastName(String directoryStyleName) { 101 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(","); 102 return directoryStyleName.substring(0, directoryStyleNameCommaPosition); 103 } 104 105 } 106