Advertisement
jaVer404

level18.lesson03.task03

Nov 2nd, 2015
518
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.82 KB | None | 0 0
  1. package com.javarush.test.level18.lesson03.task03;
  2.  
  3.  
  4. import java.io.BufferedReader;
  5. import java.io.ByteArrayOutputStream;
  6. import java.io.FileInputStream;
  7. import java.io.InputStreamReader;
  8. import java.util.*;
  9.  
  10. /* Самые частые байты
  11. Ввести с консоли имя файла
  12. Найти байт или байты с максимальным количеством повторов
  13. Вывести их на экран через пробел
  14. Закрыть поток ввода-вывода
  15. */
  16.  
  17. public class Solution {
  18.     public static void main(String[] args) throws Exception {
  19.         String fileName = new BufferedReader(new InputStreamReader(System.in)).readLine();
  20.         FileInputStream fileInputStream = new FileInputStream(fileName);
  21.         ByteArrayOutputStream stream = new ByteArrayOutputStream();
  22.         while (fileInputStream.available() > 0) {
  23.             stream.write(fileInputStream.read());
  24.         }
  25.         byte[]bytes=stream.toByteArray();
  26. /*------------------------------------------------*/
  27.         Map<Byte, Integer> bytesMap = new HashMap<Byte,Integer>();
  28.         for (Byte b : bytes) {
  29.             Integer freq = bytesMap.get(b);
  30.             bytesMap.put(b,(freq==null)?1 : freq+1);
  31.         }
  32. /*------------------------------------------------*/
  33.         int maxValue = (Collections.max(bytesMap.values()));
  34.         ArrayList<Byte> bigBytes = new ArrayList<Byte>();
  35.         for (Map.Entry<Byte,Integer>entry : bytesMap.entrySet()) {
  36.             if (entry.getValue()==maxValue) {
  37.                 bigBytes.add(entry.getKey());
  38.             }
  39.         }
  40.  
  41.         for (Byte b : bigBytes) {
  42.             System.out.print(b);
  43.             System.out.print(" ");
  44.         }
  45.  
  46.         fileInputStream.close();
  47.         System.in.close();
  48.         System.out.close();
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement