Archive until 15 Jul 2021/Coding interview preparation
Really interesting (functional) solution to counting duplicates
hajinny
2021. 1. 9. 09:17
Not necessary, but just cool.
import java.util.Map;
import static java.util.function.Function.identity;
import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;
class CountingDuplicates {
private static Map<Character, Long> charFrequenciesMap(final String text) {
return text.codePoints()
.map(Character::toLowerCase)
.mapToObj(c -> (char) c)
.collect(groupingBy(identity(), counting()));
}
static int duplicateCount(final String text) {
return (int) charFrequenciesMap(text).values().stream()
.filter(i -> i > 1)
.count();
}
}