public static void printingCharacters(Map<Character, Integer> m,Map <Character, Integer> m1) {
for (Map.Entry<Character, Integer> countedArray : m.entrySet()) {
System.out.printf("Letter: %c : Time occurs: %d - %.2f %%\t\t\t Letter: %c : Time occurs: %d - %.2f %%\n ", countedArray.getKey(),
countedArray.getValue(), percentageOfOccurrence(countedArray.getValue())
System.out.println("-----------------------------------------------| \t|-----------------------------------------------------|");
}
}
我有一个方法接受2个哈希映射作为参数,我想打印彼此相邻的哈希映射,所以我使用一个for循环遍历第一个并打印我需要它打印的内容。然后我使用printf语句以在console中显示结果。在printf中的\ t \ t \ t \ tt(图片中的第二个表)我想打印相同的内容但是对于地图m1我不知道如何做到这一点。如果有人能给我一个很棒的提示:)。
P.S最后我想实现这样的事情。表1是m表2是m1
答案 0 :(得分:3)
您可以使用迭代器执行此操作:
public static void printingCharacters(Map<Character, Integer> m, Map <Character, Integer> m1) {
Iterator<Map.Entry<Character, Integer>> it = m.entrySet().iterator();
Iterator<Map.Entry<Character, Integer>> it1 = m1.entrySet().iterator();
while(it.hasNext() && it1.hasNext()) {
printEntries(it.next(), it1.next());
}
}
public static void printEntries(Map.Entry<Character, Integer> e, Map.Entry<Character, Integer> e1) {
System.out.printf("Letter: %c : Time occurs: %d - %.2f %%\t\t\t Letter: %c : Time occurs: %d - %.2f %%\n ", e.getKey(),
e.getValue(), percentageOfOccurrence(e.getValue()), e1.getKey(), e1.getValue(), percentageOfOccurrence(e1.getValue()));
System.out.println("-----------------------------------------------| \t|-----------------------------------------------------|");
}