Java 数组、区分与排序

Java arrays, distinction and sorting

我有一个包含 1000 个字符的文件。我读了那个文件并将它存储到一个字符串中。现在 : 我有一个包含 1000 个字符的字符串 str 我有一个 char[] 字母,长度为 str.chars().distinct().count() - 我的字符串中唯一字符的数量

我需要将我的字符串 str 中的每个唯一字符存储到我的字符数组 - 字母 我还需要将 String str 中每个字符的频率存储在某处它可能是另一个数组。

字母数组中每一项的索引必须与频率数组中该元素的频率索引相同。

之后我需要将两个数组中的所有数据存储在优先队列中。数据必须按顶部节点的最低值排序。

对于第一部分,您是否完全建议我使用数组?如果是,如何处理该计数,然后如何根据我存储频率的频率数组对两个数组进行排序?

时间复杂度也很重要。

我不会用数组那样做。 Java 有一个很好的集合库,您可以使用它来代替数组。这段代码效率不高,但它展示了这个想法。

HashMap<Character,Integer> map = new HashMap<Character,Integer>();

    //iterate over your chars
    for(char c : myString.toCharArray())
    {
        Character character = new Character(c);
        if(map.containsKey(character))
        {
            map.put(character, new Integer(map.get(character).intValue()+1));
        }else
        {
            map.put(character, new Integer(1));
        }
    }