Advertisement
jaVer404

level18.lesson03.task04

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