StreamArrayListProcessing.java
|
1 //a program to perform some basic operations on a list of strings using java streams
2
3 package arraylists;
4
5 import java.util.ArrayList;
6 import java.util.BitSet;
7 import java.util.List;
8 import java.util.stream.Collectors;
9
10 public class StreamArrayListProcessing {
11
12 public static void main(String[] args){
13 //point A: Add some strings which represent names to an ArrayList
14 List<String> names = new ArrayList<>();
15 names.add("Holliday, 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("Walker, Jeremy");
21 names.add("Roosevelt, Teddy");
22
23 //point B:
24 List<String> firstNamesList = names.stream()
25 .map(n -> firstName(n))
26 .collect(Collectors.toList());
27
28 List<String> lastNamesList = names.stream()
29 .map(n -> lastName(n))
30 .collect(Collectors.toList());
31
32 System.out.print("First names: ");
33 for (String firstName : firstNamesList) {
34 System.out.print(firstName + ", ");
35 }
36 System.out.println();
37 //point C:
38 String firstNames = names.stream()
39 .map(n -> firstName(n))
40 .collect(Collectors.joining(", "));
41
42 System.out.println("First names: "+ firstNames);
43 //point D:
44 String lastNames = names.stream()
45 .map(n -> lastName(n))
46 .collect(Collectors.joining(", "));
47
48 System.out.println("Last names: "+ lastNames);
49
50 //point E:
51 String upperCasefirstNames = names.stream()
52 .map(n -> firstName(n))
53 .map(n -> n.toUpperCase())
54 .collect(Collectors.joining(", "));
55
56 System.out.println("Upper Case First names: "+ upperCasefirstNames);
57 //point F:
58 String hyphenatedLastNames = names.stream()
59 .map(n -> lastName(n))
60 .filter(n -> n.contains("-"))
61 .collect(Collectors.joining(", "));
62
63 System.out.println("Hyphenated Last names: "+ hyphenatedLastNames);
64
65 //point G:
66 int totalLength = names.stream()
67 .map(n -> n.length())
68 .reduce (0, (n1,n2) -> n1 + n2);
69
70 System.out.println("total length: "+ totalLength);
71 //point H:
72 int firstNameLength = firstNamesList.stream()
73 .map(n -> n.length())
74 .reduce (0, (n1,n2) -> n1 + n2);
75
76 System.out.println("total length: "+ firstNameLength);
77 //point I:
78 int lastNameLength = lastNamesList.stream()
79 .map(n -> n.length())
80 .reduce (0, (n1,n2) -> n1 + n2);
81
82 System.out.println("total length: "+ lastNameLength);
83 }
84 private static String firstName(String directoryStyleName){
85 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
86 return directoryStyleName.substring(directoryStyleNameCommaPosition+2);
87 }
88 private static String lastName(String directoryStyleName) {
89 int directoryStyleNameCommaPosition = directoryStyleName.indexOf(",");
90 return directoryStyleName.substring(0, directoryStyleNameCommaPosition);
91 }
92 }
93