/
SofiMut
/
deliveryRobot
Обзор
Документация
Войти
/
SofiMut
/
deliveryRobot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/Main.java
89 строк
3 KB
Sofia Stepanova
first_commit
27 ноя 2025, 09:16
27 ноя 2025, 09:16
bf4c067
Код
Авторство
О чём код?
import java.util.*; public class Main { public static final Map<Integer, Integer> sizeToFreq = new HashMap<>(); public static void main(String[] args) throws InterruptedException { String[] routs = new String[1000]; for (int i = 0; i < routs.length; i++) { routs[i] = generateRoute("RLRFR", 100); } List<Thread> threads = new ArrayList<>(); for (String rout : routs) { Runnable logic = () -> { Integer amountR = 0; for (int i = 0; i < rout.length(); i++) { if (rout.charAt(i) == 'R') { amountR++; } } System.out.println(rout.substring(0, 100) + " -> " + amountR); synchronized (amountR) { if (sizeToFreq.containsKey(amountR)) { sizeToFreq.put(amountR, sizeToFreq.get(amountR) + 1); } else { sizeToFreq.put(amountR, 1); } } }; Thread thread = new Thread(logic); threads.add(thread); thread.start(); } for (Thread thread : threads) { thread.join(); } int maxValue = 0; Integer maxKey = 0; for (Integer key : sizeToFreq.keySet()) { if (sizeToFreq.get(key) > maxValue) { maxValue = sizeToFreq.get(key); maxKey = key; } } System.out.println(); System.out.println("Самое частое количество повторений " + maxKey + " (встретилось " + maxValue + " раз)"); sizeToFreq.remove(maxKey); System.out.println("Другие размеры:"); for (Integer key : sizeToFreq.keySet()) { int value = sizeToFreq.get(key); System.out.println("- " + key + " (" + value + " раз)"); } } public static String generateRoute(String letters, int length) { Random random = new Random(); StringBuilder route = new StringBuilder(); for (int i = 0; i < length; i++) { route.append(letters.charAt(random.nextInt(letters.length()))); } return route.toString(); } @Override public boolean equals(Object o) { if (this == o) return true; else if (o == null || getClass() != o.getClass()) return false; else { Map<Integer, Integer> that = (Map<Integer, Integer>) o; return Objects.equals(sizeToFreq, that); } } @Override public int hashCode() { return Objects.hash(sizeToFreq); } }