Кто нибудь может объяснить почему, когда я отсортировал в списке символы по порядку ASCII, они заносятся в словарь HashMap <Character, Integer> spisok = new HashMap<>(); не по порядку и на выходе я получаю
a:4
b:1
r:1
c:1
d:1
e:1
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) {
HashMap <Character, Integer> spisok = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
try {
FileInputStream fstream = new FileInputStream("D://gg.txt");
while (fstream.available() > 0) {
int x = fstream.read();
list.add(x);
}
int i=1;
int x;
int y;
for (int q=0;q<list.size();q++)
{
for (int w=0;w<list.size();w++)
{
if (list.get(q)<list.get(w))
{
x=list.get(w);
y=list.get(q);
list.remove(w);
list.add(w, y);
list.remove(q);
list.add(q, x);
}
}
}
for (int g = 0;g<list.size();g++) {
int z=list.get(g);
if (spisok.containsKey((char)z)) {
i = spisok.get((char) z);
spisok.put((char) z, ++i);
i = 1;
} else spisok.put((char)z, i);
}
} catch (IOException e) {
}
for (int b :list) System.out.println((char)b);
for (Map.Entry<Character, Integer> pair : spisok.entrySet())
{
char key = pair.getKey(); //ключ
int value = pair.getValue(); //значение
System.out.println(key + ":" + value);
}
}
}