Important java 8 programming interview questions
1. Find the Frequency of each element in list using java 8 stream API
Java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public class Java8Solution {
public static void main(String[] args) {
{
List<String> stringWord = Arrays.asList("cat", "dog", "mouse", "fox", "horse", "cat", "horse", "cat", "cat", "dog");
Map<String, Long> charCountMap =
stringWord.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(charCountMap);
}
}
}
Output:
{horse=2, mouse=1, cat=4, dog=2, fox=1}
2 Find Three maximum and Three Minimum Elements using java 8 stream API
Java
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class Java8Solution {
public static void main(String[] args)
{
List<Integer> list = Arrays.asList(45, 12, 56, 15, 24, 75, 31, 89);
//3 minimum Numbers
System.out.println("-----------------");
System.out.println("Minimum 3 Numbers are :");
System.out.println("-----------------");
list.stream().sorted().limit(3).forEach(System.out::println);
//3 Maximum Numbers
System.out.println("-----------------");
System.out.println("Maximum 3 Numbers are :");
System.out.println("-----------------");
list.stream().sorted(Comparator.reverseOrder()).limit(3).forEach(System.out::println);
}
}
Output:
Minimum 3 Numbers are :
-----------------
12
15
24
-----------------
Maximum 3 Numbers are :
-----------------
89
75
56
3. Find the common elements in two list using java 8
Java
import java.util.Arrays;
import java.util.List;
public class Java8Solution {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(45, 66, 34, 23, 53, 89);
List<Integer> list2 = Arrays.asList(41, 56, 34, 21, 23, 66);
list1.stream().filter(list2::contains).forEach(System.out::println);
}
}
Output:
66
34
23
4.Reverse each word of a string using Java 8 streams?
Java
import java.util.Arrays;
import java.util.stream.Collectors;
public class Java8Solution {
public static void main(String[] args) {
String sentence = "Java is awesome";
String reversedSentence = Arrays.stream(sentence.split(" "))
.map(word -> new StringBuilder(word).reverse())
.collect(Collectors.joining(" "));
System.out.println(reversedSentence);
// Expected output: avaJ si emosewa
}
}
Output:
avaJ si emosewa
5.Find the most repeated element in an array using java 8 stream API
Java
import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public class Java8Solution {
public static void main(String[] args) {
Integer[] nums = {1, 2, 2, 3, 4, 2, 5, 2, 6, 2};
String[] words = {"apple", "banana", "apple", "orange", "banana", "apple"};
//one way
System.out.println("Most repeated number: " + findMostRepeated(nums));
System.out.println("Most repeated word: " + findMostRepeated(words));
//Another Way
Map<String, Long> elementCountMap = Arrays.asList(words).stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Map.Entry<String, Long> mostFrequentElement = elementCountMap.entrySet().stream().max(Map.Entry.comparingByValue()).get();
System.out.println("Most Repeated Element : " + mostFrequentElement.getKey());
}
public static <T> T findMostRepeated(T[] array) {
return Arrays.stream(array)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet()
.stream()
.max(java.util.Map.Entry.comparingByValue())
.map(java.util.Map.Entry::getKey)
.orElse(null);
}
}
Output:
Most repeated number: 2
Most repeated word: apple
Most Repeated Element : apple
6. Find if a string is palindrome using java 8
Java
import java.util.stream.IntStream;
public class Java8Solution {
public static void main(String[] args) {
String word1 = "palindrome";
String word2 = "malayalam";
System.out.println(isPalindrome(word1));
System.out.println(isPalindrome(word2));
}
public static boolean isPalindrome(String str) {
return IntStream.range(0, str.length() / 2)
.allMatch(i -> str.charAt(i) == str.charAt(str.length() - 1 - i));
}
}
Output:
false
true
7.Find the second largest Number in a List of integers using Java 8 stream API
Java
import java.util.Arrays;
import java.util.Collections;
public class Java8Solution {
public static void main(String[] args) {
int[] numbers = {10, 5, 20, 15, 20, 30};
try {
int secondLargest = findSecondLargest(numbers);
System.out.println("The second largest number is: " + secondLargest);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
public static int findSecondLargest(int[] array) {
return Arrays.stream(array)
.distinct()
.boxed()
.sorted(Collections.reverseOrder())
.skip(1)
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Array must contain at least two distinct elements."));
}
}
Output:
The second largest number is: 20
8. Given a list of strings, sort them according to increasing order of their length java 8 Stream API
Java
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class Java8Solution {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("Apple", "Banana", "Kiwi", "Grapefruit", "Orange");
fruits.stream().sorted(Comparator.comparing(String::length)).forEach(System.out::println);
}
}
Output:
Kiwi
Apple
Banana
Orange
Grapefruit
9. Find the average of elements in list using Java 8 stream API
Java
mport java.util.Arrays;
import java.util.List;
public class Java8Solution {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
double average = numbers.stream()
.mapToDouble(Integer::doubleValue)
.average()
.orElse(0.0); // Handles the case of an empty stream
System.out.println("The average of the elements is: " + average);
}
}
Output:
The average of the elements is: 5.5
10.Print first 10 even numbers using java 8
Java
import java.util.stream.IntStream;
public class Java8Solution {
// Print first 10 even numbers
public static void main(String[] args) {
IntStream.rangeClosed(1, 10).map(i -> i * 2).forEach(System.out::println);
}
}
Output:
2
4
6
8
10
12
14
16
18
20
hey