/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/thealgorithms/misc/MapReduce.java
41 строка
1 KB
Piotr Idzik
style: enable `HideUtilityClassConstructor` in checkstyle (#5147)
08 май 2024, 09:58
Не верифицирован
08 май 2024, 09:58
d3bb691
Код
Авторство
О чём код?
package com.thealgorithms.misc; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /* * MapReduce is a programming model for processing and generating large data sets with a parallel, distributed algorithm on a cluster. * It has two main steps: the Map step, where the data is divided into smaller chunks and processed in parallel, and the Reduce step, where the results from the Map step are combined to produce the final output. * Wikipedia link : https://en.wikipedia.org/wiki/MapReduce */ public final class MapReduce { private MapReduce() { } /* *Counting all the words frequency within a sentence. */ public static String mapreduce(String sentence) { List<String> wordList = Arrays.stream(sentence.split(" ")).toList(); // Map step Map<String, Long> wordCounts = wordList.stream().collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting())); // Reduce step StringBuilder result = new StringBuilder(); wordCounts.forEach((word, count) -> result.append(word).append(": ").append(count).append(",")); // Removing the last ',' if it exists if (!result.isEmpty()) { result.setLength(result.length() - 1); } return result.toString(); } }