【发布时间】:2019-05-01 03:10:13
【问题描述】:
我正在编写一些霍夫曼编码,我希望能够打印频率表。
但是,我尝试了下面的代码并得到了“不兼容的类型:条目无法转换为条目” for (Map.Entry entry : freq.entrySet())' 错误。有没有办法解决它,我可能能够显示频率表,它会更多地以表格或类似数组的形式而不是地图形式?
public static void buildHuffmanTree(String text)
{ // count frequency each character and store it in a map
Map<Character, Integer> freq = new HashMap<>();
for (int i = 0 ; i < text.length(); i++)
{
if (!freq.containsKey(text.charAt(i)))
{
freq.put(text.charAt(i), 0);
}
freq.put(text.charAt(i), freq.get(text.charAt(i)) + 1);
}
// Create a priority queue to store nodes of Huffman tree
// Notice that highest priority item has lowest frequency
PriorityQueue<Node> pq = new PriorityQueue<>((l, r) -> l.freq -
r.freq);
for (Map.Entry<Character, String> entry : freq.entrySet())
{
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
【问题讨论】:
标签: java huffman-code