如何在hashmap中打印出所有键?

时间:2014-11-10 15:25:24

标签: java 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));
}
}

3 个答案:

答案 0 :(得分:6)

我们走了:

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

这将使用Set.toString()方法在Map中打印出一组键。例如:

["a","b"]

答案 1 :(得分:0)

地图有一个名为KeySet的方法,包含所有键。

 Set<K> keySet();

答案 2 :(得分:0)

您需要从keySet获取hashMap并使用例如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(); } } 将{{1}}从地图中删除。

{{1}}