---Advertisement---

Java Backend Developer Interview Questions (Level-3)

By Manisha

Published On:

---Advertisement---

 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]

---Advertisement---

Leave a Comment