Java 8 coding questions:

Problem Solution
Separate Odd and Even Numbers listOfIntegers.stream().collect(Collectors.partitioningBy(number -> number % 2 == 0));
Remove Duplicates from List listOfStrings.stream().distinct().toList();
Character Frequency in String input.chars().mapToObj(c -> (char) c).collect(Collectors.groupingBy(ch -> ch, Collectors.counting()));
Frequency of Array Elements list.stream().collect(Collectors.groupingBy(element -> element, Collectors.counting()));
Sort List in Reverse list.sort(Comparator.reverseOrder()); list.forEach(System.out::println);
Join Strings with Prefix/Suffix list.stream().collect(Collectors.joining("-", "Start-", "-End"));
Filter Multiples of 5 list.stream().filter(number -> number % 5 == 0).forEach(System.out::println);
Merge Arrays and Sort IntStream.concat(Arrays.stream(arr1), Arrays.stream(arr2)).sorted().toArray();
Merge and Remove Duplicates IntStream.concat(Arrays.stream(arr1), Arrays.stream(arr2)).distinct().sorted().toArray();
Find Top 3 Minimum Values list.stream().sorted().limit(3).toList();
Find Top 3 Maximum Values list.stream().sorted(Comparator.reverseOrder()).limit(3).toList();
Sort Strings by Length list.stream().sorted(Comparator.comparing(String::length)).forEach(System.out::println);
Sum and Average of Array int sum = Arrays.stream(inputArray).sum(); double average = Arrays.stream(inputArray).average().orElse(0);
Reverse Integer Array IntStream.range(0, arr.length).map(i -> arr[arr.length - 1 - i]).toArray();
Check Palindrome boolean isPalindrome = IntStream.range(0, str.length() / 2).noneMatch(i -> str.charAt(i) != str.charAt(str.length() - i - 1));
Find Second Largest Number list.stream().sorted(Comparator.reverseOrder()).skip(1).findFirst().orElseThrow();
Common Elements Between Arrays list1.stream().filter(list2::contains).toList();
Reverse Words in String Arrays.stream(str.split(" ")).map(word -> new StringBuilder(word).reverse().toString()).collect(Collectors.joining(" "));
Find Strings Starting with Numbers list.stream().filter(s -> Character.isDigit(s.charAt(0))).toList();
Sum of Digits in Number String.valueOf(input).chars().map(Character::getNumericValue).sum();
Last Element of List list.get(list.size() - 1);
Age from Birth Year Period.between(LocalDate.of(1985, 1, 23), LocalDate.now()).getYears();
Fibonacci Series Stream.iterate(new int[]{0, 1}, fib -> new int[]{fib[1], fib[0] + fib[1]}).limit(10).map(fib -> fib[0]).toList();

This table properly structures the Java 8 coding problems with their corresponding solutions. Let me know if you need any modifications! 

Java 8 Coding Interview Questions and Answers

This document contains a collection of Java 8 coding interview questions along with their answers. These questions focus on key Java 8 features such as Streams, Lambda Expressions, Functional Interfaces, and Method References.

1. Filtering a List and Summing Even Numbers using Streams

Question: Given a list of integers, write a Java 8 program to filter out even numbers and calculate their sum.

Answer:

import java.util.Arrays;
import java.util.List;

public class SumOfEvenNumbers {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        int sum = numbers.stream()
                         .filter(n -> n % 2 == 0) // Filter even numbers
                         .mapToInt(Integer::intValue) // Convert to IntStream
                         .sum(); // Calculate sum

        System.out.println("Sum of even numbers: " + sum);
    }
}

Output:

Sum of even numbers: 30

2. Sorting a List of Strings in Ascending and Descending Order

Question: Write a Java 8 program to sort a list of strings in both ascending and descending order.

Answer:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SortStrings {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Alice", "Bob", "Charlie");

        // Ascending order
        List<String> ascendingOrder = names.stream()
                                           .sorted()
                                           .collect(Collectors.toList());

        // Descending order
        List<String> descendingOrder = names.stream()
                                            .sorted((s1, s2) -> s2.compareTo(s1))
                                            .collect(Collectors.toList());

        System.out.println("Ascending Order: " + ascendingOrder);
        System.out.println("Descending Order: " + descendingOrder);
    }
}

Output:

Ascending Order: [Alice, Bob, Charlie, John]
Descending Order: [John, Charlie, Bob, Alice]

3. Finding the Maximum and Minimum Values in a List

Question: Write a Java 8 program to find the maximum and minimum values in a list of integers.

Answer:

import java.util.Arrays;
import java.util.List;
import java.util.Optional;

public class MaxMinValues {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(10, 20, 5, 30, 15);

        Optional<Integer> max = numbers.stream().max(Integer::compareTo);
        Optional<Integer> min = numbers.stream().min(Integer::compareTo);

        System.out.println("Max Value: " + max.orElse(0));
        System.out.println("Min Value: " + min.orElse(0));
    }
}

Output:

Max Value: 30
Min Value: 5

4. Grouping Objects by a Specific Property using Streams

Question: Given a list of Employee

objects, write a Java 8 program to group them by their department.

Answer:

import java.util.*;
import java.util.stream.Collectors;

class Employee {
    private String name;
    private String department;

    public Employee(String name, String department) {
        this.name = name;
        this.department = department;
    }

    public String getDepartment() {
        return department;
    }

    @Override
    public String toString() {
        return name;
    }
}

public class GroupByDepartment {
    public static void main(String[] args) {
        List<Employee> employees = Arrays.asList(
            new Employee("John", "HR"),
            new Employee("Alice", "IT"),
            new Employee("Bob", "HR"),
            new Employee("Charlie", "IT")
        );

        Map<String, List<Employee>> groupedByDepartment = employees.stream()
            .collect(Collectors.groupingBy(Employee::getDepartment));

        System.out.println("Employees grouped by department: " + groupedByDepartment);
    }
}

Output:

Employees grouped by department: {HR=[John, Bob], IT=[Alice, Charlie]}

5. Removing Duplicates from a List using Streams

Question: Write a Java 8 program to remove duplicates from a list of integers.

Answer:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class RemoveDuplicates {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);

        List<Integer> uniqueNumbers = numbers.stream()
                                             .distinct()
                                             .collect(Collectors.toList());

        System.out.println("Unique Numbers: " + uniqueNumbers);
    }
}

Output:

Unique Numbers: [1, 2, 3, 4, 5]

6. Counting the Frequency of Characters in a String using Streams

Question: Write a Java 8 program to count the frequency of each character in a string.

Answer:

import java.util.Map;
import java.util.stream.Collectors;

public class CharacterFrequency {
    public static void main(String[] args) {
        String input = "java8";

        Map<Character, Long> frequencyMap = input.chars()
            .mapToObj(c -> (char) c)
            .collect(Collectors.groupingBy(c -> c, Collectors.counting()));

        System.out.println("Character Frequency: " + frequencyMap);
    }
}

Output:

Character Frequency: {a=2, v=1, j=1, 8=1}

Instance Of Java

We will help you in learning.Please leave your comments and suggestions in comment section. if you any doubts please use search box provided right side. Search there for answers thank you.
«
Next
Newer Post
»
Previous
Older Post

No comments

Leave a Reply

Select Menu