StreamArrayListProcessing.java
|
/*
A program to perform some bacis operation on a list of string using java
*/
package arraylists;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class StreamArrayListProcessing {
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("Shrestha, Bipin");
names.add("Mishra, Neeraj");
// Point B: Use map and the toList collector to 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 = names.stream()
.map(n -> firstName(n))
.collect(Collectors.toList());
System.out.print("First names:");
for (String firstName : firstNamesList) {
System.out.print(firstName + " ");
}
System.out.println();
//Point C: Use map and the joining collector to create a String of just the first names of the names ArrayList with each name separated by a comma. Print it.
String firstNames = names.stream()
.map(n -> firstName(n))
.collect(Collectors.joining(", "));
System.out.println("First names:" +firstNames);
//Point D: By Analogy from point C, print a comma-separated list of the last names in the names ArrayList.
String lastNames= names.stream()
.map(n-> lastName(n))
.collect(Collectors.joining(", "));
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.
String upperCaseFirstNames= names.stream()
.map(n-> firstName(n))
.map(n->n.toUpperCase())
.collect(Collectors.joining(", "));
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.
String hyphenatedLastNames= names.stream()
.map(n-> lastName(n))
.filter(n-> n.contains("-"))
.collect(Collectors.joining(","));
System.out.println("Hyphenated last names:"+ hyphenatedLastNames);
//Point G: print the integer value of the total length of all names in the names Arraylist.
int totalLength= names.stream()
.map(n-> n.length())
.reduce(0,(n1,n2)-> n1 + n2);
System.out.println("Total length:"+ totalLength);
int totalFirstLength= firstNamesList.stream()
.map(n-> n.length())
.reduce(0,(n1,n2)-> n1 + n2);
System.out.println("Total first length:"+ totalFirstLength);
double totalProduct= names.stream()
.map(n-> n.length())
.reduce(1,(n1,n2)-> n1 * n2);
System.out.println("Total Product:"+ totalProduct);
}
private static String firstName(String directoryStyleName) {
int commaposition = directoryStyleName.indexOf(",");
String firstName = directoryStyleName.substring(commaposition +1);
return firstName;
}
private static String lastName(String directoryStyleName) {
int commaposition = directoryStyleName.indexOf(",");
String lastNames = directoryStyleName.substring(0,commaposition);
return lastNames;
}
}