2017-10-22 1 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 개 해시 맵을 받아들이는 방법을 데와 나는 서로 그래서 루프를 사용 옆에있는 첫 번째 통과하는 해시 맵을 인쇄 할 옆에 인쇄 할 내용을 인쇄합니다. 그런 다음 printf 문을 사용하여 결과를 console에 표시합니다. printf (그림의 두 번째 표)에서 \ t \ t \ t 후에 동일한 내용을 인쇄하고 싶습니다. map m1 나는이 일을하는 방법을 모르겠다. 누구나 내게 멋진 소식을 줄 수 있다면 :). 내가 이럴 권리 표 1과 같은 무언가를 달성하고자 결국인쇄이 해시 맵 서로

PS는 m 표 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|-----------------------------------------------------|"); 
}