2017-10-22 9 views
2
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.After \ t \ t \ tのprintf(画像の2番目の表)に表示します。 map m1誰かが私に素晴らしいと思えるヒントを与えることができるthis.Ifを行う方法がわからない:)。私はthis.Where表1のような何かを達成したい最後に2つのハッシュマップを隣接して印刷する

PSがあるメートル表2は、使用してイテレータことを行うことができM1

enter image description here

+0

はどのようにあなたの'HashMap'は同じ' Character Key 'y''で複数の 'Integer values'を含んでいますか? –

+0

これはforループ内でforループを作成し、結果を盗聴したためです。すべて正常に動作しますが、画像に示すように両方のハッシュマップを出力するメソッドを作成する方法はわかりません。 – Ne7WoRK

答えて

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|-----------------------------------------------------|"); 
} 
関連する問題