Mastering Java Stream API Coding Problems: Unlock Your Potential with Real-World Solutions

Java Stream API Coding Problems

Below are some common java stream API coding problems and their outputs.These java stream API coding problems are designed to test your understanding of core stream API concept. Preparing for these java stream API coding problems will help you stand out and showcase your skill during technical interviews

Java Stream API Coding Problems
Java Stream API Coding Problems

1.Filtering Even Numbers from a List

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<Integer> filterEvenNumbers(List<Integer> numbers) {

        return numbers.stream()

                      .filter(n -> n % 2 == 0)

                      .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        System.out.println(filterEvenNumbers(numbers));  // Output: [2, 4, 6, 8, 10]

    }

}

Output:

[2, 4, 6, 8, 10]

2.Sum of Even Numbers

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static int sumEvenNumbers(List<Integer> numbers) {

        return numbers.stream()

                      .filter(n -> n % 2 == 0)

                      .mapToInt(Integer::intValue)

                      .sum();

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        System.out.println(sumEvenNumbers(numbers));  // Output: 30

    }

}

Output:

30

3.Find the Maximum Number

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static int findMax(List<Integer> numbers) {

        return numbers.stream()

                      .max(Integer::compareTo)

                      .orElseThrow(() -> new NoSuchElementException(“No value present”));

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(10, 20, 30, 40, 50);

        System.out.println(findMax(numbers));  // Output: 50

    }

}

Output:

50

4.Convert List of Strings to Uppercase

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<String> toUppercase(List<String> words) {

        return words.stream()

                    .map(String::toUpperCase)

                    .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“apple”, “banana”, “cherry”);

        System.out.println(toUppercase(words));  // Output: [APPLE, BANANA, CHERRY]

    }

}

Output:

[APPLE, BANANA, CHERRY]

5.Count the Occurrences of a Character in a String

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static long countOccurrences(List<String> words, char target) {

        return words.stream()

                    .flatMapToInt(String::chars)

                    .filter(c -> c == target)

                    .count();

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“apple”, “banana”, “avocado”);

        System.out.println(countOccurrences(words, ‘a’));  // Output: 7

    }

}

Output:

7

6.Group Elements by Length

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static Map<Integer, List<String>> groupByLength(List<String> words) {

        return words.stream()

                    .collect(Collectors.groupingBy(String::length));

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“apple”, “banana”, “pear”, “kiwi”, “peach”);

        System.out.println(groupByLength(words));  // Output: {4=[pear, kiwi], 5=[apple, peach], 6=[banana]}

    }

}

Output:

{4=[pear, kiwi], 5=[apple, peach], 6=[banana]}

7.Flatten a List of Lists

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<Integer> flattenList(List<List<Integer>> listOfLists) {

        return listOfLists.stream()

                          .flatMap(List::stream)

                          .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<List<Integer>> listOfLists = Arrays.asList(

            Arrays.asList(1, 2, 3),

            Arrays.asList(4, 5),

            Arrays.asList(6, 7, 8)

        );

        System.out.println(flattenList(listOfLists));  // Output: [1, 2, 3, 4, 5, 6, 7, 8]

    }

}

Output:

[1, 2, 3, 4, 5, 6, 7, 8]

8.Sort a List of Integers

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<Integer> sortList(List<Integer> numbers) {

        return numbers.stream()

                      .sorted()

                      .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 4);

        System.out.println(sortList(numbers));  // Output: [1, 2, 4, 5, 8]

    }

}

Output:

[1, 2, 4, 5, 8]

9.Remove Duplicates from a List

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<Integer> removeDuplicates(List<Integer> numbers) {

        return numbers.stream()

                      .distinct()

                      .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);

        System.out.println(removeDuplicates(numbers));  // Output: [1, 2, 3, 4, 5]

    }

}

Output:

[1, 2, 3, 4, 5]

10.Concatenate Strings from a List

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static String concatenateStrings(List<String> words) {

        return words.stream()

                    .collect(Collectors.joining(” “));

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“Java”, “Stream”, “API”, “is”, “awesome”);

        System.out.println(concatenateStrings(words));  // Output: Java Stream API is awesome

    }

}

Output:

Java Stream API is awesome

11.Find the First Element in a Stream

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static Optional<Integer> findFirstElement(List<Integer> numbers) {

        return numbers.stream()

                      .findFirst();

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(10, 20, 30, 40, 50);

        System.out.println(findFirstElement(numbers).orElse(-1));  // Output: 10

    }

}

Output:

10

12.Count the Number of Elements in a Stream

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static long countElements(List<String> words) {

        return words.stream()

                    .count();

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“apple”, “banana”, “cherry”, “date”);

        System.out.println(countElements(words));  // Output: 4

    }

}

Output:

4

13.Sum of Squares of Odd Numbers

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static int sumOfSquaresOfOddNumbers(List<Integer> numbers) {

        return numbers.stream()

                      .filter(n -> n % 2 != 0)  // Filter odd numbers

                      .map(n -> n * n)           // Square each odd number

                      .mapToInt(Integer::intValue)

                      .sum();

    }

    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7);

        System.out.println(sumOfSquaresOfOddNumbers(numbers));  // Output: 84 (1^2 + 3^2 + 5^2 + 7^2)

    }

}

Output:

84

14.Find All Palindromes in a List of Strings

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<String> findPalindromes(List<String> words) {

        return words.stream()

                    .filter(word -> word.equals(new StringBuilder(word).reverse().toString()))

                    .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“madam”, “apple”, “racecar”, “banana”, “level”);

        System.out.println(findPalindromes(words));  // Output: [madam, racecar, level]

    }

}

Output:

[madam, racecar, level]

15.Flatten and Sort Nested Lists

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static List<Integer> flattenAndSort(List<List<Integer>> listOfLists) {

        return listOfLists.stream()

                          .flatMap(List::stream)  // Flatten the list

                          .sorted()               // Sort the elements

                          .collect(Collectors.toList());

    }

    public static void main(String[] args) {

        List<List<Integer>> listOfLists = Arrays.asList(

            Arrays.asList(3, 5, 1),

            Arrays.asList(7, 4, 6),

            Arrays.asList(8, 9, 2)

        );

        System.out.println(flattenAndSort(listOfLists));  // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

    }

}

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

16.Get the Length of the Longest String

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static int findLongestStringLength(List<String> words) {

        return words.stream()

                    .mapToInt(String::length)

                    .max()

                    .orElse(0);  // Return 0 if the list is empty

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“apple”, “banana”, “kiwi”, “orange”);

        System.out.println(findLongestStringLength(words));  // Output: 6

    }

}

Output:

6

17.Get the Unique First Letters of Words

import java.util.*;

import java.util.stream.*;

public class StreamExample {

    public static Set<Character> getUniqueFirstLetters(List<String> words) {

        return words.stream()

                    .map(word -> word.charAt(0))  // Get the first character

                    .collect(Collectors.toSet());

    }

    public static void main(String[] args) {

        List<String> words = Arrays.asList(“apple”, “banana”, “cherry”, “avocado”);

        System.out.println(getUniqueFirstLetters(words));  // Output: [a, b, c]

    }

}

Output:

[a, b, c]

Leave a Comment