Today I have released new video on "Java Interview Coding Question | Find Occurrence Of Each Character From String in Java 8 Stream API"
This is frequently asked question in Java Interview.
Please watch full video, share, like and Subscribe youtube channel and press bell icon. So you will get latest video notification.
|
|
|
import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; public class FindOccurencesOfEachCharacter { public static void main(String[] args) { String input = "session";
// Solution 1: Using GroupingBy and Counting() Map<Character, Long> map = input.chars() .mapToObj(c -> (char) c) .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println("Using groupingBy : "+ map); // Solution 2: Using groupingBy and LinkedHashMap(Maintain order of Characters) map = input.chars() .mapToObj(c -> (char) c) .collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting()));
System.out.println("Using LinkedHashMap : "+ map);
// Solution 3: Using HashMap and ForEach Map<Character, Integer> forEachMap = new HashMap<>();
input.chars() .mapToObj(c -> (char) c) .forEach(c -> forEachMap.put(c, forEachMap.getOrDefault(c, 0) + 1));
System.out.println("using forEach : "+ forEachMap);
// Solution 4: Using Collections.Frequency() method List<Character> charList = input.chars() .mapToObj(c -> (char) c) .collect(Collectors.toList());
Map<Character, Integer> freqMap = charList.stream() .distinct() .collect(Collectors.toMap(c -> c, c -> Collections.frequency(charList, c) ));
System.out.println("Using Frequency : " + freqMap);
// Solution 5: Using Merge() method Map<Character, Integer> mergeMap = new HashMap<>(); for(char c: input.toCharArray()) { mergeMap.merge(c, 1, Integer::sum); }
System.out.println("Using MergeMap : "+ mergeMap);
} } Output: Using groupingBy : {s=3, e=1, i=1, n=1, o=1} Using LinkedHashMap : {s=3, e=1, i=1, o=1, n=1} using forEach : {s=3, e=1, i=1, n=1, o=1} Using Frequency : {s=3, e=1, i=1, n=1, o=1} Using MergeMap : {s=3, e=1, i=1, n=1, o=1} |
0 Comments