/* * A program to perform some basic operations on a list of String names */ package arraylists; import java.util.ArrayList; import java.util.List; public class ArrayListProcessing { public static void main(String[] args) { // POINT A: Add some strings which represent names to an ArrayList List<String> names = new ArrayList<>(); names.add("Holiday, Billie"); names.add("Claudel, Camille"); names.add("Picasso, Pablo"); names.add("Gallen-Kallela, Kaseli"); names.add("Zotto, Osvaldo"); // POINT B: Create an ArrayList of just the first names of the names // ArrayList. use a for loop to print out the names, separated // by spaces List<String> firstNamesList = firstNames(names); System.out.print("First names: "); for (String firstName : firstNamesList){ System.out.print(firstName + " "); } System.out.println(); // POINT C: Use String's join function to create and print a String of // just the first names of the names ArrayList which each // name separated by a comma. String firstNames = String.join(", ", firstNamesList); System.out.println("First names: " + firstNames); // POINT D: By analogy from points B and C, print a comma-separated // list of the last names in the names ArrayList. 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); // POINT E: Print a comma-separated list of all uppercase first names // from the list of names in the names ArrayList. List<String> upperCaseFirstNamesList = upperCaseNames(firstNames(names)); String upperCaseFirstNames = String.join(", ", upperCaseFirstNamesList); System.out.println("Uppercase first names: " + upperCaseFirstNames); // POINT F: Print a comma-separated list of all hyphenated last names // from the list of names in the names ArrayList. List<String> hyphenatedNamesLastNamesList = hyphenatedNames(lastNames(names)); String hyphenatedNamesLastNames = String.join(", ", hyphenatedNamesLastNamesList); System.out.println("Hyphenated first names: " + hyphenatedNamesLastNames); // POINT G: Print the integer value of the total length of all names // in the names ArrayList. int totalLength = totalNameLength(names); System.out.println("Total length: " + totalLength); // POINT H: Print the integer value of the total length of all // first names in the names ArrayList. int totalLength2 = totalNameLength(names) - lastNames.length(); System.out.println("Length of first names: " + totalLength2); // POINT I: Print the integer value of the product of the length of // all first names in the names ArrayList. int producttotalLength = totalNameLength(names) * (firstNames.length() + lastNames.length()); System.out.println("Product of the lengths: " + producttotalLength); } private static String firstName(String directoryStyleName) { directoryStyleName = directoryStyleName.substring(directoryStyleName.indexOf(",") + 2); return directoryStyleName; } private static String lastName(String directoryStyleName) { directoryStyleName = directoryStyleName.substring(0,directoryStyleName.indexOf(",")); return directoryStyleName; } 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 List<String> lastNames(List<String> names){ List<String> lasts = new ArrayList<>(); for (String name : names){ lasts.add(lastName(name)); } return lasts; } private 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> hyphenatedNames(List<String> names){ List<String> hyphenateds = new ArrayList<>(); for (String name : names){ if (name.contains("-")) { hyphenateds.add(name); } } return hyphenateds; } public static int totalNameLength(List<String> names){ int totalLength = 0; for (String name : names){ totalLength = totalLength + name.length(); } return totalLength; } public static int productNameLength(List<String> names){ int producttotalLength = 0; for (String name : names){ producttotalLength = producttotalLength * name.length(); } return producttotalLength; } }