Skip to content

Commit 23ea19b

Browse files
authored
Add the main method
1 parent da29511 commit 23ea19b

File tree

1 file changed

+95
-18
lines changed

1 file changed

+95
-18
lines changed

src/main/java/java_stream_api/App.java

Lines changed: 95 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package java_stream_api;
22

3+
import java.util.ArrayList;
34
import java.util.Arrays;
45
import java.util.Collections;
56
import java.util.Comparator;
@@ -76,10 +77,10 @@ public static List<Integer> filterEvenNumbers(List<Integer> intsList) {
7677
}
7778

7879
// 13. Find people older than 18 years and return a list of their names.
79-
public static List<String> namesOfUsersOlderThan18(List<java_stream_api.User> users) {
80+
public static List<String> namesOfUsersOlderThan18(List<User> users) {
8081
return users.stream()
8182
.filter(u -> u.getAge() > 18)
82-
.map(java_stream_api.User::getName)
83+
.map(User::getName)
8384
.collect(Collectors.toList());
8485
}
8586

@@ -131,15 +132,15 @@ public static Map<String, Integer> stringsToLengthMap(List<String> strList) {
131132
}
132133

133134
// 23. Sort a list of users by their age.
134-
public static List<java_stream_api.User> sortUsersByAge(List<java_stream_api.User> users) {
135+
public static List<User> sortUsersByAge(List<User> users) {
135136
return users.stream()
136-
.sorted(Comparator.comparing(java_stream_api.User::getAge))
137+
.sorted(Comparator.comparing(User::getAge))
137138
.collect(Collectors.toList());
138139
}
139140

140141
// 24. Find the user with the maximum age.
141-
public static Optional<java_stream_api.User> userWithMaxAge(List<java_stream_api.User> users) {
142-
return users.stream().max(Comparator.comparing(java_stream_api.User::getAge));
142+
public static Optional<User> userWithMaxAge(List<User> users) {
143+
return users.stream().max(Comparator.comparing(User::getAge));
143144
}
144145

145146
// 25. Check if all strings in a list are longer than 3 characters.
@@ -156,7 +157,7 @@ public static List<String> selectEvery3rd(List<String> strList) {
156157
}
157158

158159
// 27. Calculate the total number of hobbies all users have.
159-
public static int totalHobbiesCount(List<java_stream_api.User> users) {
160+
public static int totalHobbiesCount(List<User> users) {
160161
return users.stream().mapToInt(u -> u.getHobbies().size()).sum();
161162
}
162163

@@ -172,17 +173,15 @@ public static List<String> duplicateStrings(List<String> strList) {
172173
}
173174

174175
// 29. Convert all users' birthdates to string "AGE MM YYYY".
175-
public static List<java_stream_api.User> convertBirthdatesToString(
176-
List<java_stream_api.User> users) {
176+
public static List<User> convertBirthdatesToString(List<User> users) {
177177
users.forEach(user -> user.setBirthdate(user.getAge() + " MM YYYY"));
178178
return users;
179179
}
180180

181181
// 30. Filter a list of Person objects, keeping only those who live in "City X".
182-
public static List<java_stream_api.Person> filterPersonsByCity(
183-
List<java_stream_api.Person> persons, String city) {
182+
public static List<Person> filterPersonsByCity(List<Person> persons, String city) {
184183
return persons.stream()
185-
.filter(p -> "City X".equals(p.getCity()))
184+
.filter(p -> city.equals(p.getCity()))
186185
.collect(Collectors.toList());
187186
}
188187

@@ -196,7 +195,7 @@ public static <T> List<T> reverseList(List<T> list) {
196195
// 32. Find the percentage of elements with the value "null" in a list.
197196
public static long percentageOfNulls(List<?> list) {
198197
long nullCount = list.stream().filter(Objects::isNull).count();
199-
return list.size() == 0 ? 0 : (nullCount * 100) / list.size();
198+
return list.isEmpty() ? 0 : (nullCount * 100) / list.size();
200199
}
201200

202201
// 33. Shuffle the elements of a list randomly.
@@ -287,9 +286,8 @@ public static long countNullElements(List<?> list) {
287286
}
288287

289288
// 48. Group users by their year of birth.
290-
public static Map<Integer, List<java_stream_api.User>> groupUsersByBirthYear(
291-
List<java_stream_api.User> users) {
292-
return users.stream().collect(Collectors.groupingBy(java_stream_api.User::getBirthYear));
289+
public static Map<Integer, List<User>> groupUsersByBirthYear(List<User> users) {
290+
return users.stream().collect(Collectors.groupingBy(User::getBirthYear));
293291
}
294292

295293
// 49. Find all unique characters in a list of strings and form them into a sorted list.
@@ -303,10 +301,89 @@ public static List<Character> uniqueSortedCharacters(List<String> strList) {
303301
}
304302

305303
// 50. Returns a list of user names, sorted by the length of these names.
306-
public static List<String> userNamesSortedByLength(List<java_stream_api.User> users) {
304+
public static List<String> userNamesSortedByLength(List<User> users) {
307305
return users.stream()
308-
.map(java_stream_api.User::getName)
306+
.map(User::getName)
309307
.sorted(Comparator.comparingInt(String::length))
310308
.collect(Collectors.toList());
311309
}
310+
311+
public static void main(String[] args) {
312+
System.out.println("== Java Stream API Methods Demo ==");
313+
314+
List<String> strList =
315+
Arrays.asList("One", "Two", "Three", "Four", "Five", "And", "Again", "Javaaaa");
316+
List<Integer> intsList = Arrays.asList(1, 2, 3, 4, 5, 6, 4, 2);
317+
List<String> moreStrs = Arrays.asList("Apple", "Banana", "Axe", "cat");
318+
319+
List<User> users =
320+
Arrays.asList(new User("Alice", 25), new User("Bob", 17), new User("Eve", 30));
321+
users.get(0).getHobbies().addAll(Arrays.asList("reading", "sports"));
322+
users.get(2).getHobbies().add("dancing");
323+
324+
List<Person> persons =
325+
Arrays.asList(new Person("Tom", "City X"), new Person("Jane", "City Y"));
326+
327+
System.out.println("#1 Elements count: " + findNumberOfElements(strList));
328+
System.out.println("#2 To uppercase: " + convertStringsToUppercase(strList));
329+
System.out.println("#3 Starts with A: " + filterStringsStartingWithA(moreStrs));
330+
System.out.println("#4 Unique ints: " + uniqueIntegers(intsList));
331+
System.out.println("#5 Sum ints: " + sumOfIntegers(intsList));
332+
System.out.println("#6 Min int: " + minOfIntegers(intsList));
333+
System.out.println("#7 Max int: " + maxOfIntegers(intsList));
334+
System.out.println("#8 Join with comma: " + concatenateStringsWithComma(strList));
335+
System.out.println("#9 First int or zero: " + getFirstIntegerOrZero(intsList));
336+
System.out.println("#10 Last string: " + getLastString(strList));
337+
System.out.println("#11 List of squares: " + listOfSquares(intsList));
338+
System.out.println("#12 Even numbers: " + filterEvenNumbers(intsList));
339+
System.out.println("#13 Users > 18: " + namesOfUsersOlderThan18(users));
340+
System.out.println("#14 Sort by length: " + sortStringsByLength(strList));
341+
System.out.println("#15 Contains 'Java': " + containsStringWithJava(strList));
342+
System.out.println("#16 Merge string lists: " + mergeTwoStringLists(strList, moreStrs));
343+
System.out.println("#17 Average of ints: " + averageOfIntegers(intsList));
344+
System.out.println("#18 Skip 3 ints: " + discardFirstThreeIntegers(intsList));
345+
System.out.println("#19 First 3 ints: " + keepFirstThreeIntegers(intsList));
346+
System.out.println("#20 ASCII codes: " + stringToAsciiCodes(Arrays.asList("Ab", "C")));
347+
System.out.println("#21 Count > 5 chars: " + countStringsLongerThan5(strList));
348+
System.out.println("#22 String->length map: " + stringsToLengthMap(strList));
349+
System.out.println("#23 Users sorted by age: " + sortUsersByAge(users));
350+
System.out.println("#24 User with max age: " + userWithMaxAge(users).orElse(null));
351+
System.out.println("#25 All >3 length?: " + areAllStringsLongerThan3(strList));
352+
System.out.println("#26 Every 3rd element: " + selectEvery3rd(strList));
353+
System.out.println("#27 Total hobbies: " + totalHobbiesCount(users));
354+
System.out.println(
355+
"#28 Duplicates: "
356+
+ duplicateStrings(Arrays.asList("one", "two", "two", "one", "one")));
357+
System.out.println("#29 Convert birthdates: " + convertBirthdatesToString(users));
358+
System.out.println("#30 In 'City X': " + filterPersonsByCity(persons, "City X"));
359+
System.out.println("#31 Reverse list: " + reverseList(strList));
360+
System.out.println(
361+
"#32 % nulls: " + percentageOfNulls(Arrays.asList("a", null, null, "b")) + "%");
362+
List<String> shuffled = new ArrayList<>(strList);
363+
shuffleList(shuffled);
364+
System.out.println("#33 Shuffled: " + shuffled);
365+
System.out.println("#34 Group by n%3: " + groupByRemainder3(intsList));
366+
System.out.println("#35 Even->bool: " + evenIntegersAsBooleans(intsList));
367+
System.out.println("#36 Unique, reversed: " + uniqueElementsReversed(intsList));
368+
System.out.println("#37 Top 5 random: " + top5Of100Random());
369+
System.out.println("#38 Group strings by len: " + groupStringsByLength(strList));
370+
System.out.println("#39 Longest string: " + longestString(strList));
371+
System.out.println(
372+
"#40 Remove names w/ J: "
373+
+ removeUsersWithJ(Arrays.asList("Jim", "Bob", "Jane", "Alice")));
374+
System.out.println("#41 Int->square map: " + integersToSquareMap(intsList));
375+
System.out.println(
376+
"#42 Total words in sentences: "
377+
+ totalWordsInSentences(Arrays.asList("Hello world", "how are you")));
378+
System.out.println("#43 Yes/no even: " + yesNoIfEven(intsList));
379+
System.out.println("#44 Range: " + rangeOfNumbers(intsList));
380+
System.out.println("#45 Lengths desc: " + lengthsDescending(strList));
381+
System.out.println("#46 Sum of string lengths: " + sumStringLengths(strList));
382+
System.out.println(
383+
"#47 Null elements count: " + countNullElements(Arrays.asList(null, "a", null)));
384+
System.out.println("#48 Users by birthyear: " + groupUsersByBirthYear(users));
385+
System.out.println(
386+
"#49 Unique sorted chars: " + uniqueSortedCharacters(Arrays.asList("cab", "bad")));
387+
System.out.println("#50 User names by name len: " + userNamesSortedByLength(users));
388+
}
312389
}

0 commit comments

Comments
 (0)