1 /* 2 * A program to perform some basic operations on a list of String names. 3 */ 4 5 6 package arraylists; 7 8 import java.util.ArrayList; 9 import java.util.List; 10 11 public class ArrayListProcessing { 12 13 public static void main(String[] args){ 14 List<String> names = new ArrayList<>(); 15 names.add("Holiday, Billie"); 16 names.add("Claudel, Camille"); 17 names.add("Picasso, Pablo"); 18 names.add("Gallen-Kallela, Akseli"); 19 names.add("Zotto, Osvaldo"); 20 names.add("Randall, Damian"); 21 names.add("Struempfler, Emily"); 22 23 List<String> firstNamesList = firstNames(names); 24 25 System.out.println("First names: "); 26 for (String firstName : firstNamesList){ 27 System.out.println(firstName + " "); 28 } 29 System.out.println(); 30 31 String firstNames = String.join(", ", firstNamesList); 32 System.out.println("First names: " + firstNames); 33 34 35 List<String> lastNamesList = lastNames(names); 36 String lastNames = String.join(", ", lastNamesList); 37 System.out.println("Last names: " + lastNames); 38 39 List<String> upperCaseNames = upperCaseNames(names); 40 String upperCaseNamesString = String.join(", ", upperCaseNames); 41 System.out.println("Uppercase first names: " + upperCaseNamesString); 42 43 List<String> hyphenatedNames = hyphenatedNames(names); 44 String hyphenatedNamesString = String.join(", ", hyphenatedNames); 45 System.out.println("Hyphenated names: " + hyphenatedNamesString); 46 47 int totalLength = totalNameLength(names); 48 System.out.println("Total length: " + totalLength); 49 50 int firstTotalLength = totalNameLength(firstNamesList); 51 System.out.println("Total first name length: " + firstTotalLength); 52 53 } 54 55 public static int totalNameLength(List<String> names){ 56 int totalLength = 0; 57 for (String name : names){ 58 totalLength = totalLength + name.length(); 59 } 60 return totalLength; 61 } 62 63 public static List<String> hyphenatedNames(List<String> names){ 64 List<String> hyphenateds = new ArrayList<>(); 65 for (String name : names){ 66 if(name.contains("-")){ 67 hyphenateds.add(name); 68 } 69 } 70 return hyphenateds; 71 } 72 73 public static List<String> upperCaseNames(List<String> names){ 74 List<String> uppercases = new ArrayList<>(); 75 for (String name : names){ 76 uppercases.add(name.toUpperCase()); 77 } 78 return uppercases; 79 } 80 81 private static String lastName(String directoryStyleName) { 82 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(","); 83 String lastName = directoryStyleName.substring(0, directoryStyleNameCommaPosition); 84 return lastName; 85 } 86 87 private static List<String> lastNames(List<String> names){ 88 List<String> lasts = new ArrayList<>(); 89 for (String name : names){ 90 lasts.add(lastName(name)); 91 } 92 return lasts; 93 } 94 95 private static List<String> firstNames(List<String> names){ 96 List<String> firsts = new ArrayList<>(); 97 for (String name : names){ 98 firsts.add(firstName(name)); 99 } 100 return firsts; 101 } 102 103 private static String firstName(String directoryStyleName) { 104 int margin = 2; 105 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(","); 106 String firstName = directoryStyleName.substring(directoryStyleNameCommaPosition + margin); 107 return firstName; 108 } 109 } 110