package com.javarush.task.task18.task1803;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
/*
Самые частые байты
*/import static java.util.Collections.frequency;
public class Solution {
public static void main(String[] args) throws Exception {
HashSet<Integer> set = new HashSet<Integer>();// Сет для заполнения
HashSet<Integer> set1 = new HashSet<>();//Сет для повторов (байты, которые уже выводили)
int max = 1;
//Запись байтов в HashSet
FileInputStream fis = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
while (fis.available() > 0) {
set.add(fis.read());
}
fis.close();
//Определяем максимльное количество повторов max
for (int currentByte : set) {
int currentMax = frequency(set, currentByte);
if (currentMax > max) {
max = currentMax;
}
}
/* Перебираем set
* Если байт встречается max раз, то проверяем следующее условие
* Если байта нету в сете повторов set1 (если мы его уже не выводили), то
* Выводим байт в консоль
* Заносим байт в сет повторов (т.о. если байт нам встретится еще раз, мы выводить его не будем)*/
for (int currentByte : set) {
if (frequency(set, currentByte) == max) {
if (!set1.contains(currentByte)) {
System.out.print(currentByte + " ");
set1.add(currentByte);
}
}
}
}
}
package com.javarush.task.task18.task1803;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
/*
Самые частые байты
*/import static java.util.Collections.frequency;
public class Solution {
public static void main(String[] args) throws Exception {
HashSet<Integer> set = new HashSet<Integer>();// Сет для заполнения
HashSet<Integer> set1 = new HashSet<>();//Сет для повторов (байты, которые уже выводили)
int max = 1;
//Запись байтов в HashSet
FileInputStream fis = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
while (fis.available() > 0) {
set.add(fis.read());
}
fis.close();
//Определяем максимльное количество повторов max
for (int currentByte : set) {
int currentMax;
if ((currentMax = frequency(set, currentByte)) > max) {
max = currentMax;
}
}
/* Перебираем set
* Если байт встречается max раз, то проверяем следующее условие
* Если байта нету в сете повторов set1 (если мы его уже не выводили), то
* Выводим байт в консоль
* Заносим байт в сет повторов (т.о. если байт нам встретится еще раз, мы выводить его не будем)*/
for (int currentByte : set) {
if (frequency(set, currentByte) == max) {
if (!set1.contains(currentByte)) {
System.out.print(currentByte + " ");
set1.add(currentByte);
}
}
}
}
}