Java Stream API – 35+ DSA Interview Questions
with Solutions
1. Sum of array elements
[Link](arr).sum();
2. Max & Min
[Link](arr).max().getAsInt();
[Link](arr).min().getAsInt();
3. Second Largest
[Link](arr).boxed().sorted([Link]()).skip(1).findFirst().get();
4. Count Even & Odd
[Link]().filter(n -> n % 2 == 0).count();
5. Remove Duplicates
[Link]().distinct().toList();
6. Sort Asc & Desc
[Link]().sorted().toList();
[Link]().sorted([Link]()).toList();
7. Numbers greater than X
[Link]().filter(n -> n > x).toList();
8. Multiply all elements
[Link]().reduce(1, (a,b) -> a*b);
9. Check element exists
[Link]().anyMatch(n -> n == x);
10. Average
[Link]().mapToInt(Integer::intValue).average();
11. Character Frequency
[Link]().mapToObj(c -> (char)c)
.collect([Link](c -> c, [Link]()));
12. First Non-Repeated Character
[Link]().mapToObj(c -> (char)c)
.collect([Link](c->c, LinkedHashMap::new, [Link]()))
.entrySet().stream().filter(e->[Link]()==1).findFirst().get().getKey();
13. Duplicate Characters
.filter(e -> [Link]() > 1)
14. Count Vowels
[Link]().chars().filter(c -> "aeiou".indexOf(c) != -1).count();
15. Reverse String
new StringBuilder(str).reverse().toString();
16. Palindrome
[Link](new StringBuilder(str).reverse().toString());
17. Word Frequency
[Link]([Link](" ")).collect([Link](w -> w, [Link]()));
18. Longest Word
[Link]([Link](" ")).max([Link](String::length)).get();
19. Sort Characters
[Link]().sorted().mapToObj(c -> [Link]((char)c)).collect([Link]());
20. Remove Special Characters
[Link]("[^a-zA-Z0-9]", "");
21. List to List
[Link]().map(String::valueOf).toList();
22. Common Elements
[Link]().filter(list2::contains).toList();
23. Unique Elements
[Link]().distinct().toList();
24. Partition Even/Odd
[Link]().collect([Link](n -> n % 2 == 0));
25. Group Even/Odd
[Link]().collect([Link](n -> n % 2 == 0 ? "Even" : "Odd"));
26. Remove Nulls
[Link]().filter(Objects::nonNull).toList();
27. Top 3 Max
[Link]().sorted([Link]()).limit(3).toList();
28. Count Elements
[Link]().count();
29. Frequency using groupingBy
[Link]().collect([Link](e -> e, [Link]()));
30. Max Frequency Element
[Link]().stream().max([Link]()).get();
31. Group Strings by Length
[Link]().collect([Link](String::length));
32. Sort Map by Value
[Link]().stream().sorted([Link]());
33. Kth Largest
[Link]().sorted([Link]()).skip(k-1).findFirst();
34. Anagram Check
[Link]([Link]().sorted().toArray(), [Link]().sorted().toArray());
35. Second Highest Salary
[Link]().map(Employee::getSalary).distinct().sorted([Link]()).skip(1)
.findFirst();