24. How to find the longest word in a list using Streams?
java
List<String> words = Arrays.asList(“apple”, “banana”, “cherry”, “date”);
String longestWord = words.stream()
.max(Comparator.comparingInt(String::length))
.orElse(null);
System.out.println(longestWord); // Output: banana
Explanation:
This logic helps to identify the word with the maximum length in a list. Common in text-processing, UI field validation, or string metric analysis.
25. How to merge two lists using flatMap()?
java
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<Integer> mergedList = Stream.of(list1, list2)
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(mergedList); // Output: [1, 2, 3, 4, 5, 6]
Explanation:
The flatMap() method flattens nested collections into a single stream, ideal for form data merging, frontend DTO flattening, and JSON processing.
26. How to find the first number greater than 10 in a list using Stream API?
java
List<Integer> numbers = Arrays.asList(5, 8, 12, 3, 20);
int first = numbers.stream()
.filter(n -> n > 10)
.findFirst()
.orElse(-1);
System.out.println(first); // Output: 12
Use Case:
Used when you need to quickly filter data like finding first valid form value or initial large transaction amount.
27. How to find the minimum value in a list using Streams?
java
List<Integer> numbers = Arrays.asList(10, 20, 5, 15);
int min = numbers.stream()
.min(Integer::compareTo)
.orElseThrow(() -> new RuntimeException(“No minimum value found”));
System.out.println(min); // Output: 5
Use Case:
Helpful in form validation, pricing filters, or any numerical ranking algorithm.
28. How to generate a list of random numbers using Stream.generate()?
java
List<Double> randomNumbers = Stream.generate(Math::random)
.limit(5)
.collect(Collectors.toList());
System.out.println(randomNumbers);
Use Case:
Generates random test data or mock values for UI testing, simulations, or load testing.
29. How to find duplicate elements in a list using Streams?
java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 2, 3);
Set<Integer> duplicates = numbers.stream()
.filter(n -> Collections.frequency(numbers, n) > 1)
.collect(Collectors.toSet());
System.out.println(duplicates); // Output: [2, 3]
Use Case:
Vital in checking form duplicates, list validation, or cleaning repetitive data.
30. How to partition a list into prime and non-prime numbers using Stream API?
java
List<Integer> numbers = Arrays.asList(2, 3, 4, 5, 6, 7, 8, 9, 10);
Map<Boolean, List<Integer>> partitioned = numbers.stream()
.collect(Collectors.partitioningBy(num -> isPrime(num)));
System.out.println(partitioned);
static boolean isPrime(int num) {
if (num <= 1) return false;
return IntStream.rangeClosed(2, (int) Math.sqrt(num)).noneMatch(n -> num % n == 0);
}
Use Case:
Helpful in mathematical filtering, data science, and quiz/game apps.
31. How to flatten a nested collection using flatMap()?
java
List<List<String>> nestedList = Arrays.asList(
Arrays.asList(“Alice”, “Bob”),
Arrays.asList(“Charlie”, “David”)
);
List<String> flatList = nestedList.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(flatList); // Output: [Alice, Bob, Charlie, David]
Use Case:
Frequently used in form data extraction, dynamic dropdowns, or data normalization.
32. How to calculate factorial using Streams?
java
int number = 5;
int factorial = IntStream.rangeClosed(1, number)
.reduce(1, (a, b) -> a * b);
System.out.println(factorial); // Output: 120
Use Case:
Great for algorithm interviews, math-based apps, and custom logic building.
33. How to extract sublists using skip() and limit()?
java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
List<Integer> sublist = numbers.stream()
.skip(2)
.limit(3)
.collect(Collectors.toList());
System.out.println(sublist); // Output: [3, 4, 5]
Use Case:
Used in pagination, carousel filtering, and batch processing.
34. What is Collectors.teeing() and how is it used?
java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Map<String, Double> result = numbers.stream()
.collect(Collectors.teeing(
Collectors.summingDouble(n -> n),
Collectors.averagingDouble(n -> n),
(sum, avg) -> Map.of(“Sum”, sum, “Average”, avg)
));
System.out.println(result); // Output: {Sum=15.0, Average=3.0}
Use Case:
teeing() is ideal for multi-metric dashboards, analytics, or multi-column reports.
35. How to find all palindromic strings in a list?
java
List<String> words = Arrays.asList(“madam”, “racecar”, “java”, “level”, “hello”);
List<String> palindromes = words.stream()
.filter(word -> word.equals(new StringBuilder(word).reverse().toString()))
.collect(Collectors.toList());
System.out.println(palindromes); // Output: [madam, racecar, level]