Не могу поставить в HashMap - PullRequest
1 голос
/ 12 марта 2019

Я пытаюсь поместить каждый символ (как int) и его количество в Hashmap.Однако, когда я распечатываю карту, значения всегда равны нулю.Может ли кто-нибудь помочь мне выяснить, что не так с моим кодом?

public class CharCounter implements IHuffConstants, ICharCounter {

    private static Map<Integer, Integer> table;

    CharCounter(){
        table = new HashMap<Integer, Integer>();
    }


    /**
     * Initialize state by counting bits/chunks in a stream
     * @param stream is source of data
     * @return count of all chunks/read
     * @throws IOException if reading fails
     */
    @Override
    public int countAll(InputStream stream) throws IOException {

        ByteArrayOutputStream buffer = new ByteArrayOutputStream();

        int nRead;
        byte[] data = new byte[16384];

        while ((nRead = stream.read(data, 0, data.length)) != -1) {
          buffer.write(data, 0, nRead);
        }
        byte[] result = buffer.toByteArray();

        for(int i =0 ; i<result.length;i++) {           
            table.put((int)result[i],table.getOrDefault(result[i],0)+1);
            System.out.println(result[i] +","+table.get(result[i]));
        }
        return result.length;
    }

Вывод: (проверьте слово «тестирование»)

116,null
101,null
115,null
116,null
115,null
116,null
114,null
105,null
110,null
103,null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...