2016-11-12 43 views
-1

我有一个包含1000个字符的文件。我把这个文件存储起来并存储到一个字符串中。 ()。distinct()。count() - 我的字符串中唯一字符的数量Java数组,区别和排序

我需要一个char []字符,长度为str.chars将我的String str中的每个唯一字符存储到我的char数组中 - 字母 我还需要存储String str中每个字符的频率它可能是另一个数组。

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

之后我需要将来自两个阵列的所有数据存储在优先队列中。数据必须使用顶部节点处的最低值进行排序。

对于第一部分,你是否建议我使用数组?如果是的话,如何处理这个计数,然后如何对我存储频率的频率数组进行排序?

时间复杂度也很重要。

+0

你尝试过什么吗? – ItamarG3

+0

只是尝试一下,得到一个例子工作,然后尝试改善其性能等。 – luk2302

+0

是 - [link](http://pastebin.com/75fX5irY)@ItamarGreen 我不知道如何在循环 –

回答

0

我不会那样做与数组。 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)); 
     } 
    } 
+0

说实话,经过一段时间的努力,我用HashMap做了非常类似的事情。现在我已经实现了堆满足我的需求的堆优先级队列,但我不知道如何将对象从HashMap添加到该PQ –