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));
}
}
我有一个包含 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));
}
}