package arraylists; import java.util.ArrayList; import java.util.List; public class ArrayListProcessing { public static void main(String[] args){ List<String> names = new ArrayList<>(); names.add("Holiday, Billie"); names.add("Claudel, Camille"); names.add("Picasso, Pablo"); names.add("Gallen-Kallela, Akseli"); names.add("Zotto, Osvaldo"); names.add("Schukraft, Sean"); names.add("Ross, Bob"); //First names List<String> firstNamesList = firstNames(names); System.out.print("First names: "); for (String firstName : firstNamesList){ System.out.print(firstName + " "); } System.out.println(); String firstNames = String.join(", ", firstNamesList); System.out.println("First names: " + firstNames); //Last names List<String> lastNamesList = lastNames(names); System.out.print("Last names: "); for (String lastName : lastNamesList){ System.out.print(lastName + " "); } System.out.println(); String lastNames = String.join(", ", lastNamesList); System.out.println("Last names: " + lastNames); //First names to uppercase List<String> upperCaseFirstNameList = upperCaseNames(firstNames(names)); String upperCaseFirstNames = String.join(", ", upperCaseFirstNameList); System.out.println("Uppercase first names: " + upperCaseFirstNames); //Names with hyphens List<String> hyphenatedNameList = hyphenatedNames(lastNames(names)); String hyphenatedNames = String.join(", ", hyphenatedNameList); System.out.println("Hyphenated names: " + hyphenatedNames); //Total name length int totalLength = totalNameLength(names); System.out.println("Total length: " + totalLength); //Total first name length int totalFirstLength = totalNameLength(firstNamesList); System.out.println("Total first name length: " + totalFirstLength); //Product total of names int productTotalLength = productNameLength(names); System.out.println("Product total of names: " + productTotalLength); } public static int productNameLength(List<String> names){ int totalLength = 1; for (String name : names){ totalLength = totalLength * name.length(); } return totalLength; } public static int totalNameLength(List<String> names){ int totalLength = 0; for (String name : names){ totalLength = totalLength + name.length(); } return totalLength; } public static List<String> hyphenatedNames(List<String> names){ List<String> hyphenateds = new ArrayList<>(); for (String name : names){ if (name.contains("-")){ hyphenateds.add(name); } } return hyphenateds; } public static List<String> upperCaseNames(List<String> names){ List<String> uppercases = new ArrayList<>(); for (String name : names){ uppercases.add(name.toUpperCase()); } return uppercases; } private static List<String> lastNames(List<String> names) { List<String> lasts = new ArrayList<>(); for (String name : names){ lasts.add(lastName(name)); } return lasts; } private static String firstName(String directoryStyleName) { int commaPosition = directoryStyleName.indexOf(","); return directoryStyleName.substring((commaPosition + 2), (directoryStyleName.length())); } private static List<String> firstNames(List<String> names){ List<String> firsts = new ArrayList<>(); for (String name : names){ firsts.add(firstName(name)); } return firsts; } private static String lastName(String directoryStyleName) { int commaPosition = directoryStyleName.indexOf(","); return directoryStyleName.substring(0, commaPosition); } }