2014-11-10 4 views
1

Я пытаюсь узнать, как работают hashmaps, и я возился с небольшой программой телефонной книги.Как распечатать все ключи в hashmap?

Но я в тупике, что делать, когда я хочу распечатать все ключи.

вот мой код:

import java.util.HashMap; 
import java.util.*; 

public class MapTester 
{ 

private HashMap<String, String> phoneBook; 

public MapTester(){ 
    phoneBook = new HashMap<String, String>(); 
} 

public void enterNumber(String name, String number){ 
    phoneBook.put(name, number); 
} 

public void printAll(){ 
    //This is where I want to print all. I've been trying with iterator and foreach, but I can't get em to work 
} 

    public void lookUpNumber(String name){ 
    System.out.println(phoneBook.get(name)); 
} 
} 
+1

Вы читали javadoc? –

+2

https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html#keySet-- – azurefrog

+0

phoneBook.keySet(); -> вернуть набор ключей! – StackFlowed

ответ

2

Здесь мы идем:

System.out.println(phoneBook.keySet()); 

Это распечатай набор ключей в вашей карте, используя метод Set.toString(). например:

["a","b"] 
0

Maps есть метод, называемый Keyset со всеми ключами.

Set<K> keySet(); 
+0

Спасибо, я этого не знал. – Gurkang

+0

Если ответ вам помог, пожалуйста, отметьте его как принятый, спасибо. – jjlema

0

Вы должны получить keySet от вашего hashMap и перебирать его использованием, например, a foreach петля. Таким образом, вы получаете keys, который затем можно использовать для получения values с карты.

import java.util.*; 

public class MapTester 
{ 

    private HashMap<String, String> phoneBook; 

    public MapTester() 
    { 
     phoneBook = new HashMap<String, String>(); 
    } 

    public void enterNumber(String name, String number) 
    { 
     phoneBook.put(name, number); 
    } 

    public void printAll() 
    { 
     for (String variableName : phoneBook.keySet()) 
     { 
      String variableKey = variableName; 
      String variableValue = phoneBook.get(variableName); 

      System.out.println("Name: " + variableKey); 
      System.out.println("Number: " + variableValue); 
     } 
    } 

    public void lookUpNumber(String name) 
    { 
     System.out.println(phoneBook.get(name)); 
    } 

    public static void main(String[] args) 
    { 
     MapTester tester = new MapTester(); 

     tester.enterNumber("A name", "A number"); 
     tester.enterNumber("Another name", "Another number"); 

     tester.printAll(); 
    } 
} 
Смежные вопросы