如何打印出HashMap中的所有键?

7

我正在尝试学习哈希映射的工作原理,并且一直在使用一个小型电话簿程序进行实验。

但是当我想要打印出所有键时,我感到困惑。

以下是我的代码:

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了吗? - Sotirios Delimanolis
2
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html#keySet-- - azurefrog
phoneBook.keySet(); --> 返回键的集合! - StackFlowed
3个回答

13

出发了:

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

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

["a","b"]

1
你需要从你的hashMap中获取keySet,并使用例如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();
    }
}

0

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

 Set<K> keySet();

谢谢,我不知道。 - Gurkang
如果这个答案对你有帮助,请将其标记为已接受,谢谢。 - jjlema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接