2015-05-06 3 views
0

Ive создал карту с ключами типа integer и значениями являются Sets of Strings. Я заполнил карту некоторыми тестовыми данными, и теперь вам нужно написать метод, который выводит содержимое карты, например «key: value, value, value»Распечатайте ключи и значения карты

Im, предполагающий итерацию по карте и назначение ключей к переменной int, и печатать их, как начать, но как же мне потом приступить к печати значений в наборе строк?

public class HandicapRecords { 

    private Map<Integer, Set<String>> handicapMap; 

    public HandicapRecords() { 
     handicapMap = new HashMap<>(); 
    } 

    public void handicapMap() { 
     Set<String> players = new HashSet<>(); 

     players.add("Michael"); 
     players.add("Roger"); 
     players.add("Toby"); 
     handicapMap.put(10, players); 

     players = new HashSet<>(); 
     players.add("Bethany"); 
     players.add("Martin"); 
     handicapMap.put(16, players); 

     players = new HashSet<>(); 
     players.add("Megan"); 
     players.add("Declan"); 
     handicapMap.put(4, players); 
    } 

    public void printMap() { 
     //code for method to go here 
    } 

} 

ответ

1

Вы можете перемещаться по структуре Set данных так же, как вы могли бы в списке (ну, на самом деле список сохраняет порядок, в то время как набор не, но я полагаю, что это будет выходить за рамки этого вопроса) ,

Для печати данных, можно сделать следующее:

for (Integer num : handicapMap.keySet()) { 
     System.out.print("Key : " + String.valueOf(num) + " Values:"); 
     for (String player : handicapMap.get(num)) { 
      System.out.print(" " + player + " ");  
     } 
     System.out.println(); 
    } 
0

Я думаю, вы не будете знать, ключи, поэтому вы должны перебрать все записи в хэш-карта:

for (Map.Entry<Integer, Set<String>> entry : handicapMap.entrySet()) 
{ 
    Integer key = entry.getKey(); 
    HashSet<String> values = entry.getValue(); 

    for (String s : values) { 
     // and now do what you need with your collection values 
    } 
} 
1

Вы дали использование вложенных для каждого цикла. Мы не можем напрямую перебирать HashMao, берем keySet и печатаем. Пример:

public void printMap() 
{ 
Set<Integer> keys=handicapMap.keySet(); 
for(Integer k:keys) 
{ 
    Set<String> players=handicapMap.get(k); 
    System.out.print(" "+k+":"); 
    int i=0; 
    for(String p:players) 
    { 
     i++; 
     System.out.print(p); 
     if(i!=players.size()) 
      System.out.print(","); 
    } 
    System.out.println(); 
} 
}